Příručka:$wgRunJobsAsync
Pracovní místa: $wgRunJobsAsync | |
---|---|
Řídí, zda jsou úlohy na vyžádání spouštěny asynchronně nebo synchronně. |
|
Zavedeno od verze: | 1.23.0 (Gerrit change 124470; git #fab01509) |
Odstraněno od verze: | stále se používá |
Povolené hodnoty: | (boolean) |
Výchozí hodnota: | false (1.27.2, 1.28.1, 1.29+) git #1214a7catrue (předchozí verze) |
Další nastavení: Podle abecedy | Podle funkce |
Když je povoleno provádění úloh během normálních požadavků na stránku (nastavením $wgJobRunRate
na číslo větší než 0; výchozí hodnota je 1), pak tato proměnná řídí, zda se mají provádět asynchronně nebo ne.
Podrobnosti
Při asynchronním spouštění úloh se otevře interní připojení HTTP pro zpracování provádění úloh a MediaWiki okamžitě vrátí obsah stránky klientovi, aniž by čekal na dokončení úlohy. V opačném případě bude úloha provedena ve stejném procesu jako vrácení stránky a klient bude muset počkat, dokud nebude úloha dokončena. Pokud se úloha nespustí asynchronně, dojde k závažné chybě během provádění úlohy, přenese se na klienta a přeruší načítání stránky.
$wgRunJobsAsync
nastaveno na hodnotu true, pokud PHP nemůže otevřít soket pro provedení interního požadavku HTTP, vrátí se zpět k provádění synchronní úlohy.
Stránky se nezobrazují ve svých kategoriích
Mnoho uživatelů má problémy se stránkami, které se neobjevují v jejich kategoriích, ačkoliv jsou ve wikitextu jsou správně kategorizovány. V mnoha případech se jedná o problém s frontou úloh. Lidé mají obvykle problém s tím, že se stránky nezobrazují okamžitě v jejich kategoriích. Důvody mohou být různé. Je možné, že fronta úloh vůbec nefunguje nebo že fronta nevykonává dostatek úloh na zobrazení stránky kvůli způsobu používání wiki. V druhém případě se do fronty zařadí více úloh, než se provede, což zastaví provádění.
V těchto případech byste měli vyzkoušet následující:
- Zkuste úlohy spustit přímo pomocí runJobs.php .
- Poté pomocí servisního skriptu showJobs.php ověřte, zda je ve frontě 0 úloh. Pokud stále existují nějaké úlohy (bez ohledu na to, zda jsou ve frontě, nárokované nebo zpožděné), pak ZKRAŤTE úlohy databázové tabulky v databázi. Tím se odstraní všechny nespuštěné úlohy z DB. To může také odstranit úlohy, které byly naplánovány ke spuštění v budoucnu. Tyto úlohy pak logicky nebudou spuštěny, protože se odstraňují stejně jako všechny ostatní úlohy.
- Poté spusťte skript údržby refreshLinks.php a aktualizujte tabulky odkazů. Po tomto okamžiku budou stránky kategorií znovu správně zobrazovat své členské stránky (alespoň pro aktuální stav kategorizace stránek).
- Nastavte $wgRunJobsAsync na hodnotu false a $wgJobRunRate na hodnotu 2 nebo vyšší. To často pomáhá (ale výkon se zhoršuje).
- Poté proveďte několik úprav, přidejte nebo odeberte kategorie ze stránek. Poté sledujte obsah tabulky job nebo použijte údržbový skript showJobs.php a zkontrolujte, zda se úlohy nyní provádějí.