Hallo zusammen,
ich bin seit Shopware 5 dabei. Dort war es einfach: Ein Cron-Dienst hat /backend/cron aufgerufen, und alles lief. In Shopware 6 braucht man dafür CLI-Worker, also scheduled-task:run und messenger:consume dauerhaft im Hintergrund, am besten mit Supervisor. Das ist aufwendig und geht nicht auf jedem Hosting. Der Admin-Worker als Ersatz arbeitet nur, solange jemand in der Administration angemeldet ist.
Darum habe ich ein kleines Plugin geschrieben, das es wieder so einfach macht wie früher. Es stellt eine geheime Adresse bereit. Ruft ein Cron-Dienst sie zum Beispiel alle 5 Minuten auf, plant Shopware die fälligen Scheduled Tasks ein und arbeitet die Message Queue ab. Solange die Aufrufe kommen, schaltet das Plugin den Admin-Worker ab. Bleiben sie aus, ist er nach 15 Minuten von selbst wieder an.
- kostenlos, MIT-Lizenz
- Shopware 6.5 bis 6.7 (getestet mit 6.6 und 6.7)
- funktioniert mit jedem Cron-Dienst und jedem Hoster-Cron, der eine Adresse aufrufen kann
Damit es klar ist: Das Plugin ist von mir, ich betreibe Cronjob.de. Mit Cronjob.de ist es per Verbindungslink in der Plugin-Konfiguration mit einem Klick eingerichtet, und der 5-Minuten-Takt ist kostenlos. Jeder andere Dienst geht aber genauso.
Download und Beschreibung: Shopware 6 Cronjob ohne CLI-Worker – kostenloses Plugin
Ich freue mich über Rückmeldungen, vor allem wenn etwas nicht klappt.
Joscha