Manual:Job queue/pl

W MediaWiki 1.6 została wprowadzona kolejka zadań (ang. job queue) do wykonywania długotrwałych zadań w sposób asynchroniczny. Celem kolejki zadań jest umożliwienie wykonywania wielu zadań przy wykorzystaniu przetwarzania wsadowego. Domyślnie, przy każdym żądaniu (programu obsługującego tryb wsadowy) zdejmowane jest i wykonywane jedno zadanie czekające w kolejce. Jeśli obniża to zbytnio ogólną wydajność systemu, można zmniejszyć parametr $wgJobRunRate poprzez umieszczenie wpisu w LocalSettings.php, przykładowo:

Można również ustawić $wgJobRunRate na 0, a następnie użyć procesu crona do opróżnienia kolejki zadań. Odbywa się to poprzez uruchomienie maintenance/runJobs.php. Na przykład:

0 0 * * * /usr/bin/php /var/www/wiki/maintenance/runJobs.php 2>&1 > /var/log/runJobs.log

W przypadku, gdy po zmianach dokonaych w szablonie, do którego odwołuje się bardzo dużo stron, kolejka zadań bardzo się wydłuży, można ją opróżnić, wykonując z linii poleceń:

cd /var/www/w php ./maintenance/runJobs.php --conf ./LocalSettings.php

Aktualizacja tabeli linków po zmianach w szablonie
MediaWiki 1.6 dodaje zadanie do kolejki zadań dla każdego artykułu, który zawiera w sobie jakiś szablon. Każde zadanie to polecenie, aby przejrzeć artykuł, rozwinąć szablony i odpowiednio zaktualizować tabelę linków. Nie są więc już konieczne puste edycje, których zadaniem byłoby wymuszenie tych aktualizacji, choć może to trochę potrwać, zwłaszcza gdy jest dużo operacji do wykonania. Może to wyraźny sposób odciążyć w pracy jej użytkowników.

Inwalidacja pamięci podręcznej HTML
Szeroka klasa operacji może spowodować inwalidację (czyli unieważnienie/aktualizację) pamięci podręcznej HTML dla dużej liczby stron:


 * Zmiana grafiki (wszystkie miniaturki muszą być ponownie zrenderowane a ich rozmiary od nowa przeliczone)
 * Usunięcie strony (we wszystkie linkach prowadzących do niej na innych stronach trzeba zmienić kolor z niebieskiego na czerwony)
 * Utworzenie lub przywrócenie strony (jak wyżej ale z czerwonego na niebieski)
 * Zmiana szablonu (wszystkie strony, które zawierają ten szablon potrzebują aktualizacji)

Za wyjątkiem zmian w szablonie, działania te nie wymagają inwalidacji tabeli linków, ale inwalidują pamięć podręczną HTML wszystkich stron zawierających linki do tej strony lub wykorzystujących daną grafikę. Inwalidacja pamięci podręcznej strony jest operacją krótką; wymaga tylko aktualizacji pojedynczego pola bazy danych i wysyłanie pakietu danych typu multicast, aby wyczyścić pamięć podręczną. Ale jeśli jest ich ilość przekracza 1000, to zajmuje to dużo czasu. Domyślnie zadania są dodawane po przekroczeniu liczby 500 operacji potrzebujących inwalidacji, czyli jedno zadanie przypada na 500 operacji.

Typowe wartości
W okresie niskiego obciążenia, długość kolejki zadań może wynosić zero. W praktyce, w projektach Wikimedii, długość kolejki zadań rzadko kiedy wynosi zero. Poza godzinami szczytu, może to być wartość od kilkuset do tysiąca zadań. Podczas pracowitego dnia, może to być nawet kilka milionów, ale wartość ta zwykle szybko fluktuuje w granicach ±10% i powyżej.

Do wersji 1.16 MediaWiki, długość kolejki zadań była pokazywana na stronie specjalnej Specjalna:Statystyka; od wersji 1,17 ( 75272) została stamtąd usunięta ale może być obserwowana poprzez API:Meta,

Zobacz też

 * Job queue redesign (ang.)
 * Job queue for developers (ang.)