1. Home
  2. Wissensdatenbank
  3. Software & Skriptsprachen
  4. Shopware
  5. Shopware 6: Worker im Hintergrund laufen lassen
  1. Home
  2. Wissensdatenbank
  3. Software & Skriptsprachen
  4. Shopware 6: Worker im Hintergrund laufen lassen

Shopware 6: Worker im Hintergrund laufen lassen

Hintergrund
In der Standardkonfiguration führt Shopware 6 Browser Prozesse aus, um alle Hintergrundaufgaben zu erledigen. Dadurch werden andere Web-PHP-Prozesse blockiert. Sofern nun mehrere Benutzer gleichzeitig im Backend arbeiten, verlangsamt dies entsprechend die Seitengeschwindigkeit.

Um dieses Performance Einbußen zu minimieren, können die Prozesse auf dem Server direkt ausgeführt werden.

Wichtige vorab Information:

Da auf unseren Systemen mehrere php-Versionen zur verfügung stehen und auf jedem System Global eine andere php-Version definiert ist, (abhängig vom Standard zum Zeitpunkt der Installation dessen) kann die Standard php-Version des Systems von der, die Ihre Software benötigt, abweichen.

Daher nutzen Sie bitte in den Skripten die direkte Ansprache der von Ihrer Software benötigten php-Version indem Sie in den folgenden Beispielen "phpX.Y" gegen die benötigte Version ersetzen z.B.: "php8.2".

Alle Pfade finden Sie hier: Wie lauten die Pfade zu Perl, PHP und Python auf dem Server?

Deaktiveren der Browser Prozesse
Zum deaktivieren der Browser Prozesse muss folgendes in Shopware hinzugefügt werden:

/home/'Benutzer'/'Shopverzeichnis'/config/packages/z-shopware.yaml

shopware:
    admin_worker:
        enable_admin_worker: false

In früheren Versionen von Shopware 6 wurde dies direkt in der parallel liegenden shopware.yaml definiert, nun muss dies jedoch in die z-shopware.yaml geschrieben werden da die andere Datei durch den Updater überschrieben wird.

Damit die Einstellung greift, muss der Cache geleert werden:

/usr/local/phpX.Y/bin/php /home/’Benutzer’/’Shopverzeichnis’/bin/console cache:clear

Cronjobs einrichten
Um die Cronjobs zu erstellen, müssen folgende Skripte hochgeladen werden:

sw_consumer.sh vor Shopware 6.5

#!/bin/bash
cd "$(dirname "$0")"

/usr/local/phpX.Y/bin/php /home/’Benutzer’/’Shopverzeichnis’/bin/console messenger:consume --time-limit=295 --memory-limit=512M

sw_consumer.sh ab Shopware 6.5

#!/bin/bash
cd "$(dirname "$0")"

/usr/local/phpX.Y/bin/php /home/’Benutzer’/’Shopverzeichnis’/bin/console messenger:consume failed async --time-limit=295 --memory-limit=512M

sw_scheduled_task.sh

#!/bin/bash
cd "$(dirname "$0")"

/usr/local/phpX.Y/bin/php /home/’Benutzer’/’Shopverzeichnis’/bin/console scheduled-task:run --time-limit=295 --memory-limit=512M

Die Skripte müssen Ausführungsrechte besitzen, damit der Cronjob diese starten kann.

Wie Cronjobs eingerichtet werden finden Sie hier:

Wie richte ich einen Cronjob ein?

Folgende Werte sollten gesetzt werden:

* Ausführung alle 5 Minuten
* Laufzeit: 300 Sekunden
* Memory: 512MB

Weitere Informationen zum Admin Worker und der Message Queue finden Sie in der Entwicklerdokumentation von Shopware: Message Queue -- Shopware Developer

Aktualisiert am 26. Juni 2024

War dieser Artikel hilfreich?

Ähnliche Artikel