Suchergebnisse für

    Inhaltsverzeichnis ein-/ausblenden

    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.

    Standardmäßig vorhandene Scheduled Task

    Scheduled Task Run Intervall (Sekunden) Erläuterung
    log_entry.cleanup 86400 Leert die Tabelle "log_entry"
    shopware.invalidate_cache 20 Invalidierung des Caches
    app_update 86400 Prüft, ob es für die installierten Erweiterungen ein Update gibt
    app_delete 86400 Entfernt eine Erweiterung und die zugehörigen Plugin-Daten manuell aus der Shopware-Datenbank und den Server-Dateien
    version.cleanup 86400 Löscht veraltete Version-ID aus der Datenbank
    webhook_event_log.cleanup 86400 Löscht Webhook-Ereignisprotokolle, die älter als die eingestellte Zeit sind
    sales_channel_context.cleanup 86400 Leert die Tabelle "sales_channel_context"
    product_keyword_dictionary.cleanup 604800 Leert die Tabelle "product_keyword_dictionary"
    product_download.media.cleanup 2628000 Löscht nicht zugewiesene Bilder
    delete_newsletter_recipient_task 86400 Löscht Newsletter-Empfänger mit dem Status "Warten auf Löschung"
    product_stream.mapping.update 86400 Updatet das Mapping
    product_export_generate_task 60 Triggert den Produkt-Export
    import_export_file.cleanup 86400 Leert die Tabelle "import_export_file"
    shopware.sitemap_generate 86400 Generiert die Sitemap
    cart.cleanup 86400 Löscht alle Warenkörbe, die älter als 120 (shopware.cart.expire_days) Tage sind
    shopware.elasticsearch.create.alias 300 Triggert die Erstellung von Elastic Search Alias, dies wird nur bei Bedarf ausgeführt

     

    Einige Tasks wie shopware.elasticsearch.create.alias und shopware.invalidate_cache werden nur bei Bedarf ausgeführt. Die Elasticsearch-Aufgabe wird nur ausgeführt, wenn ein Elasticsearch-Server konfiguriert und aktiviert ist.

    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.

    CLI-Worker

    Der CLI-Worker ist ein Worker, der direkt auf dem Server eingerichtet werden kann. Er wird für die Ausführung von Hintergrund-Jobs verwendet, dabei steht "CLI" für "Command Line Interface", was bedeutet, dass dieser Aufgaben über die Befehlszeile ausführen kann. Der CLI-Worker kümmert sich um Aufgaben, wie die Ausführung von Indexierungen und anderen Prozessen, die nicht direkt im Frontend des Shopware-Admins stattfinden müssen. Dabei können die Befehle ebenfalls als Cronjob oder als Service eingerichtet werden, sodass diese regelmäßig im Hintergrund durchgeführt werden können.

     

    Mehr Informationen findest Du in unsere Developer-Dokumentation.

    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 z-shopware.yaml vorgenommen werden, damit die Änderung auch Update sicher ist. Du findest diese in Deiner Shopware-Installation unter config/packages/. Sollte die Datei fehlen, so erstelle diese bitte.

     

    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 failed async --time-limit=60
    

    Wichtig ist, dass sich der Befehl ab der Shopware Version 6.5 geändert hat. Der alte CLI-Command mit dem Wert "default" wird fehlschlagen.

    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.

    Schritt 3: Ausführungsart wählen (Cronjob oder as a Service)

    Im nächsten Schritt solltest Du Dich entscheiden, wie Du die Message Queue abarbeiten möchtest. Du kannst die oben genannten Befehle als Cronjob einrichten oder den CLI-Worker als Service einrichten.

    Mehr Informationen dazu erfährst Du hier.

    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

     

    In diesem Artikel
    Zurück nach oben Generated by DocFX