Scheduled Tasks und Message Queue per URL-Cron – kostenloses Plugin (MIT, GitHub)

Hallo zusammen,

vorab in eigener Sache: Das Plugin ist von mir. Ich betreibe auch einen Cron-Dienst, das Plugin funktioniert aber mit jedem Cron-Service, der eine Adresse aufrufen kann.

Ich bin seit Shopware 5 dabei. Dort hat ein Cron /backend/cron aufgerufen, und alles lief. In Shopware 6 laufen Scheduled Tasks und Message Queue über Worker.

Wer per Cron die Konsole aufrufen darf, braucht kein Plugin. Zwei Einträge jede Minute reichen:

* * * * * php /pfad/zum/shop/bin/console scheduled-task:run --time-limit=60
* * * * * php /pfad/zum/shop/bin/console messenger:consume async low_priority --time-limit=60

Danach den Admin-Worker in config/packages/shopware.yaml abschalten:

shopware:
    admin_worker:
        enable_admin_worker: false

Für Hoster, bei denen ein Cronjob nur eine Adresse per wget oder curl aufrufen kann (oder die gar keinen Cron haben), habe ich ein kleines Plugin geschrieben. Es stellt eine geheime Adresse bereit. Jeder Aufruf plant die fälligen Tasks ein und arbeitet die Queue ab, höchstens 25 Sekunden lang und mit Sperre gegen doppelte Läufe. Solange Aufrufe kommen, ist der Admin-Worker aus. Bleiben sie 15 Minuten aus, ist er von selbst wieder an.

  • kostenlos, MIT-Lizenz
  • Shopware 6.5 bis 6.7 (getestet mit 6.6 und 6.7)

Quellcode und Download: GitHub

Rückmeldungen gern hier oder als Issue auf GitHub.

Joscha

Hallo Joscha,

danke fuer deinen Beitrag zur Community!
Magst du das Ganze noch bei packagist.org/ einstellen und auf GitHub das Topic shopware6-plugin geben fuer bessere Auffindbarkeit (shopware6-plugin · GitHub Topics · GitHub)?
Dann wuerde es u.a. auch in unserem Open Source Plugin Manager Extensionware landen.

Viele liebe Gruesse
Marcus

Hallo Marcus,

danke für den Hinweis, ist erledigt: Das Plugin liegt jetzt auch auf Packagist als cronjob-de/shopware6-task-runner, und das Repo hat das Topic shopware6-plugin.

Installation per Composer:
composer require cronjob-de/shopware6-task-runner

Viele Grüße
Joscha