Jump to content

Příručka:$wgRunJobsAsync

From mediawiki.org
This page is a translated version of the page Manual:$wgRunJobsAsync and the translation is 100% complete.
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 #1214a7ca
true (předchozí verze)

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.

I když je $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í.


Související odkazy