{% extends 'admin/shell.html.twig' %} {% set nav = 'tasks' %} {% block title %}Aufgaben{% endblock %} {% block heading %}Wiederkehrende Aufgaben{% endblock %} {% block lead %}Was regelmäßig laufen soll, wer es anstößt und was zuletzt dabei herauskam. Alle Zeiten in UTC.{% endblock %} {% block content %} {# Der wichtigste Satz zuerst, und zwar als Einschränkung und nicht als Werbung: ohne Anfrage passiert nichts. Wer das nicht weiß, sucht später den Fehler an der falschen Stelle. #}
Ein Webhosting ohne Cronjob hat nur eines: Anfragen. Deshalb erledigt eine Anfrage die Arbeit – nach der ausgelieferten Antwort, sodass niemand darauf wartet. Ohne Besuch und ohne geöffnete Verwaltung passiert nichts. Eine Aufgabe für 03:00 Uhr läuft dann beim ersten Aufruf danach, auf einer stillen Website vielleicht um 07:15 Uhr. Wer es genauer braucht, richtet einen der beiden unteren Wege ein.
{# Die Formulare der Knöpfe stehen außerhalb der Tabelle: ein Formular im Formular gibt es in HTML nicht, und `form="..."` verbindet Knopf und Formular über die Tabelle hinweg. #} {% for task in tasks %} {% if task.running %} {% endif %} {% endfor %}Beide Wege sind unabhängig von den Schaltern oben – sie laufen auch dann, wenn Besuch und Verwaltung ausgeschaltet sind. Wer einen davon einrichtet, sollte den Besuchs-Auslöser abschalten: die Arbeit ist dann schon getan, und die Website antwortet ein wenig schneller.
{{ cronUrl }}
Diese Adresse beim Hoster als Cronjob eintragen, zum Beispiel alle fünf Minuten. Der Schlüssel ist aus dem Anwendungsgeheimnis abgeleitet, steht in keiner Datenbank und ändert sich, wenn das Geheimnis gewechselt wird. Er gehört nicht in eine E-Mail und nicht in ein Ticket.
php bin/console cms:tasks:run
Für einen echten Cronjob, jede Minute. cms:tasks zeigt denselben Plan wie dieser Bildschirm, cms:tasks:run --loop=60 läuft dauerhaft.
Noch nichts gelaufen. Steht in der Spalte „Nächster Lauf“ ein Zeitpunkt, ist alles in Ordnung – der Plan wartet.
{% else %}{{ line }} |
Aus var/tasks.log. Die Datei kürzt sich selbst; die Aufgabe „Aufräumen“ tut es ebenfalls.