Manual:Job queue/de

Die Job queue („Warteschlange“) wurde in MediaWiki 1.6 eingeführt, um längerfristige Prozesse asynchron (zeitversetzt und besser verteilt) auszuführen. Sie wurde mit dem Ziel entwickelt, viele kleine Prozesse zu handhaben (Stapelverarbeitung).

Sofern nicht im Systemtext MediaWiki:Sitestatstext die entsprechende Angabe lokal entfernt wurde, lässt sich bei allen MediaWiki-Installationen ab MediaWiki 1.6 die aktuelle Länge der Job queue auf der Statistik-Spezialseite einsehen. Standardmäßig wird bei jedem Seitenaufruf (page view) ein Prozess ausgeführt und aus der Job queue entfernt. Wenn die dadurch entstehende Systembelastung zu groß ist, kann $wgJobRunRate (Standardwert 1) reduziert werden, indem in LocalSettings.php beispielsweise folgender Wert eingetragen wird:

Alternativ kann $wgJobRunRate auf den Wert 0 gesetzt und dann ein cronjob zum Leeren der Job queue verwendet werden. Dies wird durch Ausführung von maintenance/runJobs.php erreicht, beispielsweise mit:

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

Aktualisierung der Linktabellen nach Vorlagenänderungen
Wird im Wiki eine Vorlage bearbeitet, fügt MediaWiki für jede Seite, die diese Vorlage verwendet, einen Job der Job queue hinzu. Jeder Job ist dabei der Befehl, die entsprechenden Seite aufzurufen, die Vorlage neu zu expandieren und die Linktabelle entsprechend zu aktualisieren. Demnach sind grundsätzlich keine manuellen „Null-Edits“ (Blindedits, „Seite speichern“ ohne etwas geändert zu haben) mehr nötig, was eine erhebliche Entlastung für die Benutzer darstellt. Bei vielfach verwendeten Vorlagen kann die Aktualisierung aller betroffenen Seiten jedoch einige Zeit in Anspruch nehmen (üblicherweise einige Minuten bis Stunden, in großen Wikis selten einige Tage).

Außerkraftsetzen des HTML-Caches
Weitere Vorgänge können darüberhinaus für eine große Seitenanzahl zum Ungültigwerden des jeweilgen HTML-Caches führen:


 * Änderung eines Bildes (alle Vorschaubilder, die „Thumbnails“, müssen neu gerendert und ihre Größen neu berechnet werden)
 * Löschung einer Seite (alle Links auf anderen Seiten müssen von blau nach rot geändert werden)
 * Neuanlage oder Wiederherstellung einer Seite (wie vorstehend, aber von rot nach blau)
 * Änderung einer Vorlage (alle Seiten, die die Vorlage einbinden, müssen aktualisiert werden)

Abgesehen von Vorlagenänderungen betreffen diese Aktionen zwar nicht die Linktabellen, sie machen jedoch den HTML-Cache aller Seiten, auf denen die fragliche Seite verlinkt oder in denen ein Bild eingebunden ist, ungültig. Die Außerkraftsetzung des Caches einer Seite ist ein kurzer Vorgang; dazu wird nur die Aktualisierung eines einzigen Datenbankfelds und das Senden eines Multicast-Datenpakets zur Cacheleerung benötigt.

Es dauert allerdings länger wenn mehr als 1000 Aktualisierungen vorzunehmen sind. Standardmäßig werden Jobs hinzugefügt, wenn mehr als 500 Seiten betroffen sind; ein Job pro 500 Vorgänge.

Typische Werte
In Zeiten geringer Serverlast kann die Job queue leer sein und den Wert Null haben. In der Praxis ist die Job queue – zumindest in den großen Wikimediaprojekten wie z.B. der deutschsprachigen Wikipedia – fast nie leer. Außerhalb der Tagesspitzenzeiten kann sie einige hundert bis tausende anstehende Jobs umfassen, in Spitzenzeiten auch mehrere Millionen. Der Zahlenwert kann sehr kurzfristig um 10 Prozent oder mehr schwanken.