Du siehst Dir gerade den Artikel zu einer älteren Shopware Version an!

Message Queue

In Shopware 6 werden eine Vielzahl von Aufgaben asynchron abgearbeitet, das bedeutet, die Aufgaben werden in Nachrichten (Message) in einer Warteschlange (Queue) nacheinander abgearbeitet und nicht zum Zeitpunkt der Ausführung. So können Aufgaben unabhängig von Zeitüberschreitungen oder Systemabstürzen bearbeitet werden. Mögliche Aufgaben sind das Versenden von Mails, die Indexierung von Produkten oder die Generierung der Sitemap.

Scheduled Tasks

Immer wiederkehrende Aufgaben werden über Scheduled Tasks (geplante Aufgaben) gelöst. Mit Scheduled Tasks werden in festen Intervallen bestimmte Aufgaben der Message Queue hinzugefügt, die dann ebenfalls asynchron abgearbeitet werden. Zum Beispiel fallen hierunter die Generierung eines Exportes für Vergleichsportale oder die Prüfung, ob neue Updates zur Verfügung stehen.

Admin Worker

In einer standardmäßigen Installation von Shopware werden Aufgaben der Message Queue in der Datenbank gespeichert und über den Browser bearbeitet, sofern Du in der Administration angemeldet bist. Dies ist eine einfache und schnelle Methode, wird aber nicht für den Einsatz in Produktionssystemen empfohlen. 

Die Funktionsweise des Admin Worker erfordert, dass die Administration über einen längeren Zeitraum geöffnet ist, andernfalls werden keine Aufgaben abgearbeitet.  Wenn eine große Anzahl von Benutzern an der Administration angemeldet sind, kann dies zu einer hohen CPU-Last führen. In solchen Fällen ist es ratsam, den Admin Worker zu deaktivieren und die Prozesse serverseitig über die CLI laufen auszuführen. Auf diese Weise werden Aufgaben auch dann abgearbeitet, wenn niemand in der Administration angemeldet ist und eine hohe CPU-Last durch mehrere Benutzer wird ebenfalls vermieden. Diese Vorgehensweise ist besonders bei größeren Shops sinnvoll.

Admin Worker deaktivieren & CLI-Worker einrichten

Wie erläutert, wird der Einsatz des Admin Worker nicht für Produktivsysteme empfohlen, der folgende Abschnitt erläutert wie der Admin Worker deaktiviert werden kann und die Message Queue / Scheduled Tasks serverseitig ausgeführt werden.

Die folgenden Einstellungen erfolgen direkt auf dem Server. Da die Möglichkeiten der Serverkonfiguration vom Hoster abhängt, erläutern wir dies hier allgemein. Bei Fragen zur Bedienung der Serverkonfiguration sollte der Support Deines Hosters weiterhelfen können.

Schritt 1: Konfiguration anpassen

Um den Admin-Worker zu deaktivieren muss die Änderung in der Datei shopware.yaml vorgenommen werden. Du findest diese in Deiner Shopware-Installation unter config/packages/. Deaktiviere den Admin-Worker indem Du den Wert "false" einträgst und speichere die Datei ab. Deine Datei sollte nun folgendermaßen aussehen: 


# config/packages/shopware.yaml
shopware:
    admin_worker:
        enable_admin_worker: false

Schritt 2: CLI-Befehle ausführen

Damit die Message Queue und die Scheduled Tasks nun ausgeführt werden, müssen die Prozesse über die CLI gestartet werden.


Message Queue:

bin/console messenger:consume default --time-limit=60
Scheduled Tasks:

bin/console scheduled-task:run --time-limit=60

Wir empfehlen bei den oben stehenden Befehlen den Parameter time-limit=60, sodass der Befehl für maximal 60 Sekunden ausgeführt wird. Alternativ /zusätzlich kannst Du anstatt eines Zeitlimits auch ein Speicherlimit definieren, dies ist mit dem Parameter --memory-limit=512M möglich. Mehr Informationen findest Du in unserer Developer Doku.

Wichtig ist bei diesem Vorgang, dass die Befehle regelmäßig ausgeführt werden, damit die Message Queue kontinuierlich abgearbeitet wird. Dies kann zum Beispiel durch das Anlegen eines Cronjobs oder eines Services auf dem Server erreicht werden. Wende Dich hierzu an Deinen Hoster.

Weitere Informationen von einigen Hostern

Einige Hoster stellen in Ihren Wissensbereichen Artikel zur Verfügung, in denen beschrieben wird, wie die Einrichtung dort zu erfolgen hat.

Profihost

Bei Profihost findest Du weitere Informationen zur Einrichtung unter https://wissen.profihost.com/wissen/artikel/shopware-6-worker-im-hintergrund-laufen-lassen/

Hetzner

Hetzner stellt die Informationen bereit unter
https://community.hetzner.com/tutorials/install-shopware-6#step-6---configuring-background-queue-worker

Creoline

Creoline stellt die Informationen bereit unter
https://help.creoline.com/doc/shopware-6-background-queue-worker-einrichten-XLBEPcGmlt

Timme Hosting

Timme Hosting stellt die Informationen bereit unter
https://timmehosting.de/shopware-6-admin-worker-deaktivieren

War dieser Artikel hilfreich?