Seit längerer Zeit stellen wir uns die Frage, wie genau die Scheduled Tasks in SW6 Live-Systemen angetriggert werden.
Während in DEV-Umgebungen die Tasks gefühlt bei Aktionen im Adminbereich ausgeführt werden, ist die PROD-Umgebung aktuell noch ein Rätsel.
Im Produktivsystem werden die Tasks mehr oder weniger zufällig ausgeführt.
Kann hier jemand von Shopware mal etwas Klarkeit ins Dunkel bringen?
Müssen wir auf unserem Server einen Cronjob einrichten, der den Konsolenbefehl bin/console scheduled-task:run ausführt oder wie genau werden die Tasks ausgeführt?
Gibt es zudem schon eine Info, wann es endlich eine Konfigurationsoberfläche für die Scheduled Tasks im Adminbereich geben wird?
Es ist durchaus unpraktikabel, wenn bspw. die Intervalle nur in der DB geändert werden können…
Fürs Backend gibt es bereits zwei Plugins im Store. Wie das getriggert wird würde mich auch interessieren. Am praktischsten wäre es, wenn es wieder via URL möglich wäre.
Wenn du nichts konfigurierst, bearbeitet der Admin Worker die Tasks. Der Admin Worker steckt zum einen die Scheduled Tasks in die Queue und arbeitet auch die Tasks in der Queue ab. Ohne login im Admin passiert also da auch nichts. Für Produktivumgebungen macht es Sinn den Admin Worker zu deaktivieren und den CLI Worker zu nutzen. Dafür muss man zwei Commands ausführen:
Die beiden CLI-Befehle solltest du dann als Cronjob auf deinem Server einrichten. Der Consume-Befehl sollte immer ausgeführt werden, am besten ein Time-Limit geben und direkt danach wieder neustarten, dass ist quasi ein Task der durchgehend laufen sollte.
Wenn du nichts konfigurierst, bearbeitet der Admin Worker die Tasks. Der Admin Worker steckt zum einen die Scheduled Tasks in die Queue und arbeitet auch die Tasks in der Queue ab. Ohne login im Admin passiert also da auch nichts. Für Produktivumgebungen macht es Sinn den Admin Worker zu deaktivieren und den CLI Worker zu nutzen. Dafür muss man zwei Commands ausführen:
Die beiden CLI-Befehle solltest du dann als Cronjob auf deinem Server einrichten. Der Consume-Befehl sollte immer ausgeführt werden, am besten ein Time-Limit geben und direkt danach wieder neustarten, dass ist quasi ein Task der durchgehend laufen sollte.
Hallo Moritz,
Danke für die Antwort.
Wenn man aber den scheduled-task:run Befehl als Cronjob einrichtet, sollte der doch auch ein Time-Limit bekommen und regelmäßig ausgeführt werden - oder nicht?
Also hier wäre tatsächlich ein praktisches Beispiel mit Beispielzahlen und Intervallen für das Antriggern der Commands gut.
Nach meinem Verständnis Sorgt ja erst der scheduled-task:run Befehl dafür, dass die Tasks ausgeführt werden können, richtig? Also müsste auch dieser mit Time-Limit und in regelmäßigen Abständen ausgeführt werden…oder?
Hallo [@Moritz Naczenski](http://forum.shopware.com/profile/14574/Moritz Naczenski „Moritz Naczenski“) unser Kunde hat die entsprechenden Dinge nun auf seinem Server konfiguriert, so dass der CLI-Worker entsprechend scheduled-task:run ausführt.
Naja, läuft denn messenger:consume auch auf dem Server?
scheduled-task:run legt die tasks ja nur in die queue, der messenger.consume führt die erst aus. Also ohne beide Befehle läuft das nicht.
Naja, läuft denn messenger:consume auch auf dem Server?
scheduled-task:run legt die tasks ja nur in die queue, der messenger.consume führt die erst aus. Also ohne beide Befehle läuft das nicht.
Beide Befehle sind als Cronjobs auf dem Server eingerichtet. Interessanterweise werden auch alle anderen Scheduled Tasks ausgeführt, nur der eine des einen Plugins nicht. Der wird immer nur in die queue gelegt aber nicht weiter abgearbeitet.