MediaWiki/Jobs: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
Es gibt bestimmte Aufgaben, die MediaWiki über einen längeren Zeitraum im Hintergrund ausführen muss. | Es gibt bestimmte Aufgaben, die MediaWiki über einen längeren Zeitraum im Hintergrund ausführen muss. | ||
* | |||
;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 | ** Dieser Vorgang kann nicht auf einmal durchgeführt werden | ||
*** da dies den Server | *** da dies den zu sehr verlangsamen Server könnte | ||
* Stattdessen wird der Prozess in „Jobs“ zerlegt, die in eine „Job Queue“ gestellt werden | * Stattdessen wird der Prozess in „Jobs“ zerlegt, die in eine „Job Queue“ gestellt werden | ||
** diese Jobs werden dann geordnet ausgeführt. | ** 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. | * 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. | ** Diese Jobs werden in sequenzieller Reihenfolge ausgeführt, und sobald ein Job ausgeführt wird, wird seine Zeile gelöscht. |
Version vom 13. April 2022, 19:40 Uhr
Es gibt bestimmte Aufgaben, die MediaWiki über einen längeren Zeitraum im Hintergrund ausführen muss.
- 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
- Dieser Vorgang kann nicht auf einmal durchgeführt werden
- 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.
- Es gibt verschiedene Parameter, die runJobs.php annehmen kann
- 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.