MediaWiki/Jobs

Aus Foxwiki

Die Jobwarteschlange verwaltet die Aufgaben, die MediaWiki im Hintergrund ausführt

Beispiel
  • Eine Vorlage wird geändert.
  • Angenommen, jemand fügt einer Vorlage ein Kategorie-Tag hinzu – das bedeutet, dass alle Seiten, die diese Vorlage enthalten, dieser Kategorie hinzugefügt werden müssen.
    • Dieser Vorgang kann nicht auf einmal durchgeführt werden
      • da dies den zu sehr verlangsamen Server könnte
  • Stattdessen wird der Prozess in „Jobs“ zerlegt, die in eine „Job Queue“ gestellt werden
    • diese Jobs werden dann geordnet ausgeführt.
Job-Warteschlange
  • Hinter den Kulissen ist die Job-Warteschlange wirklich nur eine Datenbanktabelle namens "Job", die eine Zeile für jeden Job enthält.
    • Diese Jobs werden in sequenzieller Reihenfolge ausgeführt, und sobald ein Job ausgeführt wird, wird seine Zeile gelöscht.
  • Jobs werden jedes Mal ausgeführt, wenn das Wiki einen Seitentreffer erhält.
  • Standardmäßig wird bei jedem Treffer ein Job ausgeführt, aber diese Zahl kann geändert werden, um die Ausführung von Jobs langsamer oder schneller zu machen, indem der Wert von $wgJobRunRate geändert wird.
    • Um etwa die Ausführung von Jobs zehnmal schneller zu machen, würden Sie Folgendes zu LocalSettings.php hinzufügen:
$wgJobRunRate = 10; 
  • Um es zehnmal langsamer zu machen, würden Sie den Wert auf 0,1 setzen.
  • Sie können nicht wirklich einen Bruchteil eines Jobs ausführen – stattdessen legt ein Bruchteil die Wahrscheinlichkeit fest, dass ein Job zu einem bestimmten Zeitpunkt ausgeführt wird.
runJobs.php

Sie können auch veranlassen, dass Jobs automatisierter ausgeführt werden, anstatt nur darauf zu warten, dass sie ausgeführt werden

  • Dies geschieht durch Aufrufen des Skripts runJobs.php im MediaWiki- /maintenance .
  • Sie können sogar einen Cron-Job erstellen, um runJobs.php regelmäßig auszuführen – sagen wir einmal am Tag.
    • Es gibt verschiedene Parameter, die runJobs.php annehmen kann
      • z. B. das Festlegen der maximalen Anzahl auszuführender Jobs oder, was vielleicht noch wichtiger ist, die Art des auszuführenden Jobs.
      • Um letzteres zu ermöglichen, hat jeder Auftragstyp einen eigenen Kennungsnamen, der in der Datenbank zu finden ist.
  • Alle Parameter für runJobs.php können Sie hier nachlesen: https://www.mediawiki.org/wiki/Manual:RunJobs.php

Zusätzlich zum MediaWiki-Kern können Erweiterungen auch ihre eigenen Jobs erstellen.

  • Einige Erweiterungen, die dies tun, sind Data Transfer, DeleteBatch, Nuke und Replace Text.