in Shopware 6 werden die Cronjobs ja über bin/console scheduled-task:run und b in/console messenger:consume ausgeführt. Beide Scripte laufen so ja in einer Endlosschleife und unterscheiden sich somit von der Vorgehensweise in SW5. Wie soll mit der Ausführungsvariante in Shopware 6 gearbeitet werden? Ein Cronjob auf dem Server, der das Script allle X Minuten aufruft ist somit ja jetzt nicht mehr Sinnhaft, oder?
Müssen beide Scripte auf dem Server in einer Endlosschleife durchlaufen? Wie ist es in der Praxis sinnvoll?
Wo ist der Unterschied zwischen den beiden Befehlen und was machen Sie genau? Ich habe mir folgende Links angeschaut aber werde nicht richtig schlau daraus:
Die Tasks in der Tabelle “scheduled_task” werden durch beide Befehle ausgeführt, was ich an der “last_execution_time” sehe. Müssen trotzdem beide Befehle regelmäßig ausgeführt werden? Muss eine Reihenfolge eingehalten werden?
Ich würde eigene Cronjobs auch erstmal als solche bauen. Damit hat man mehr Kontrolle. Also einen einfachen Command erstellen. Nutze ich momentan zB für DB-Cleanup Aufgaben.
Für SW6 Aufgaben hab ich hingegen den TaskRunner einrichten lassen.
Grundsätzlich gibts zwei CLI Befehle, die zyklisch auf dem Webserver ausgeführt werden sollten, wo shopware läuft. Dazu ist vorher der „admin worker“ in der shopware.yaml zu deaktivieren. Denn standardmäßig läuft dies alles, wenn man im Backend eingeloggt ist. Deshalb „Admin worker“. Details dazu, siehe shopware Doku.
Dann könnte man ein systemd Skript schreiben oder sonst wie den Worker zyklisch neu starten auf der Console. Ich habe das bei uns mittels Cronjob gelöst. Der Cron startet die zwei Prozesse immer alle 10 Minuten an. Beide haben ein LIMIT von 5 Minuten, sind also beendet, bis der Cron die beiden Prozesse neu anstartet. Das geht dann permanent so…
Also cronjobs für Shopware AB VERSION 6.5.7 wie folgt:
→ # SHOPWARE: Alle 10 Minuten CLI-worker mit 300sec und Mem 512M Limit starten:
*/10 * * * * /usr/bin/php /var/www/shop/web/bin/console messenger:consume async low_priority --time-limit=300 --memory-limit=512M
*/10 * * * * /usr/bin/php /var/www/shop/web/bin/console scheduled-task:run --time-limit=300 --memory-limit=512M