Seitenanfang

MovableType: Veröffentlichen im Hintergrund

Dieser Post wurde aus meiner alten WordPress-Installation importiert. Sollte es Darstellungsprobleme, falsche Links oder fehlende Bilder geben, bitte einfach hier einen Kommentar hinterlassen. Danke.


Eine der größten - vermutlich sogar die größte - Stärke von MovableType ist die Auslieferung des Contents in Form von statischen Dateien, anstatt ihn bei jedem Zugriff neu dynamisch zu generieren (wie es beispielsweise WordPress macht). Bei großen Blogs kann die Aufbereitung der aller geänderten Seiten allerdings ein wenig Zeit in Anspruch nehmen. Die Lösung heißt Publishing Queue und ist schnell eingerichtet. movable-type-workerZuständig für alle Hintergrundarbeiten ist das Script run-periodic-tasks, welches Teil von MovableType ist. Gestartet wird einfach vom MT-Verzeichnis aus:
perl tools/run-periodic-tasks -v
TheSchwartz::work_once found no jobs
Damit es regelmäßig läuft, muss es in die Crontab eingetragen werden. Auf keinen Fall sollte es als root laufen. Auch wenn keine Sicherheitsprobleme zu erwarten sind, sollten Programme, die keine root-Rechte benötigen, auch nicht mit diesen ausgeführt werden. Außerdem würden die erstellten Dateien ebenfalls root gehören und könnten damit nicht mehr manuell über das Webinterface veröffentlicht werden.

Der Datei /etc/crontab sollte also folgende Zeile hinzugefügt werden:

*/5 * * * * www-data cd /var/www/cgi-bin/mt; perl tools/run-periodic-tasks
Abhängig von der eigenen Installation muss das (im Beispiel blau markierte) MovableType - Verzeichnis ggf. angepasst werden. Alternativ kann der Aufruf - dann allerdings ohne den Benutzernamen www-data - in der Crontab des Webserver-Benutzers eingetragen werden, dazu verwendet man:
sudo crontab -e -u www-data
Das sudo - Präfix ist selbstverständlich nur notwendig, wenn man nicht als root auf dem Server eingeloggt ist.

Arbeit für die Massen

Jeder gestartete run-periodic-tasks - Prozess arbeitet solange, bis die Publishing Queue vollständig abgearbeitet wurde. Mehrere gleichzeitig laufende Prozesse teilen die Arbeit unter sich auf, aber zu viele sollten es dann doch nicht werden, damit der Server nicht unter ihnen leidet. Im MovableType - Verzeichnis liegt die Konfigurationsdatei mt-config.cgi über die auch run-periodic-tasks gesteuert werden kann.
#======== RUN PERIODIC TASKS =======================RPTProcessCap 3RPTFreeMemoryLimit 512MB
Diese Einstellungen sorgen dafür, dass maximal drei Kopien von run-periodic-tasks gleichzeitig laufen und neue Prozesse nur starten, wenn noch mindestens 512 MB Arbeitsspeicher auf dem Server frei sind. Das RPTProcessCap gibt die maximale Anzahl der erlaubten Prozesse vor, allerdings wird dieses nur ausgeschöpft, wenn es auch etwas zu tun gibt.

Andernfalls beenden sich die run-periodic-tasks - Prozesse sofort und es werden nie zwei oder mehr gleichzeitig laufen. Beide Werte können selbstverständlich den eigenen Bedürfnissen entsprechend angepasst werden. Die Grenzen werden hier allerdings nicht von den persönlichen Vorlieben, sondern von der zur Verfügung stehenden Hardware gesetzt. Ein typischer Blog sollte mit zwei oder drei gleichzeitigen run-periodic-tasks - Prozessen jede Lastspitze der Publishing-Queue problemlos und schnell abfangen können. Gibt es tatsächlich sehr viele Änderungen oder entsprechend viele Webseiten, die aktualisiert werden wollen und wird das Limit zu hoch angesetzt, können die laufenden Updates den Server an seine Grenzen bringen.

Die RPTFreeMemoryLimit - Definition ist optional, schützt den Server allerdings zusätzlich, wenn er an die Grenze seiner Ressourcen kommt.

Los geht's

Damit ein Template über die Publishing Queue veröffentlicht wird, muss der Veröffentlichungsmodus unter Gestalten -> Vorlagen auf Hintergrund gestellt werden. Damit wirken sich Änderungen zwar erst nach dem nächsten run-periodic-tasks - Lauf aus, aber die Wartezeit beispielsweise bei neuen Blog-Posts oder Seitenänderungen reduziert sich z.T. erheblich.

Ohne Crontab

Auch ohne Crontab lässt sich die Publishing Queue nutzen, quasi als Light-Variante. Auf der Systemübersicht gibt es das Tools-Menü und dort den Menüpunkt Aktivitäten. Dort können nicht nur alle Aktionen im System nachverfolgt werden, am Ende der Seite findet sich auch ein (persönlicher) Link zu einem RSS-Feed des Aktivitätsprotokolls, genannt Aktivitäts-Feed. Ein Abruf des Feeds löst ebenfalls die Abarbeitung der Publishing-Queue aus, allerdings ist dringend davon abzuraten, den Feed aus diesem Grund alle paar Minuten abzufragen, dann sollte lieber auf die Hintergrundveröffentlichung verzichtet werden.
 

Noch keine Kommentare. Schreib was dazu

Schreib was dazu

Die folgenden HTML-Tags sind erlaubt:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>