2WebPixel Logo
Kontakt
Kontakt

Der Admin Worker in Shopware 6: Was ist das überhaupt?

Dein Shop verschickt Mails zu spät? Oft liegt es am Admin Worker

Was im Hintergrund von Shopware 6 passiert, und warum es manchmal eben nicht passiert

Ein Kunde bestellt, aber die Bestätigungsmail kommt erst eine halbe Stunde später. Der Suchindex zeigt noch ein Produkt, das längst ausverkauft ist. Ein Import bleibt einfach stehen. Solche Aussetzer wirken zufällig, haben aber oft dieselbe Ursache: den Admin Worker.

In diesem Artikel zeigen wir dir, was der Admin Worker in Shopware 6 eigentlich ist, warum er im Live-Betrieb für genau diese Probleme sorgt und wie ein sauber eingerichteter Shop das Ganze zuverlässig erledigt. Ohne tiefes Technikwissen, dafür mit dem Blick darauf, was es für deinen Shop bedeutet.

Was ist der Admin Worker überhaupt?

Die Warteschlange hinter den Kulissen

Nicht jede Aufgabe in einem Shop muss in genau dem Moment passieren, in dem du oder ein Kunde einen Knopf drückt. Eine Bestätigungsmail verschicken, den Suchindex aktualisieren, einen Cache neu aufbauen, einen Export erzeugen: Solche Aufgaben schiebt Shopware in eine Warteschlange und arbeitet sie nach und nach ab. Das hält das Backend schnell und die Klicks flüssig.

Die Frage ist nur: Wer arbeitet diese Warteschlange ab? Im Standard übernimmt das der Admin Worker. Er läuft direkt in deinem Browser, solange das Shopware-Backend geöffnet ist. Das Backend fragt im Hintergrund regelmäßig nach, ob etwas zu tun ist, und erledigt dann die nächste Aufgabe aus der Schlange.

Für die Einrichtung und fürs lokale Entwickeln ist das praktisch. Für einen echten Live-Shop ist genau dieser Punkt aber das Problem. Wer frisch auf Shopware 6 umgezogen ist, etwa über eine Migration von Shopware 5, sollte hier besonders genau hinschauen.

Blaues Licht über Glasfaserkabeln als Bild für Aufgaben in der Warteschlange

Warum das im Live-Betrieb Ärger macht

Drei Schwächen des Admin Workers

Niemand im Backend, nichts passiert

  • Der Worker läuft nur, solange jemand im Backend eingeloggt ist. Nachts, am Wochenende oder in einer ruhigen Stunde steht die Warteschlange still. Mails und Aufgaben bleiben liegen, bis sich wieder jemand anmeldet.

Das Backend wird langsamer

  • Damit der Worker arbeitet, fragt das Backend ständig im Hintergrund nach neuen Aufgaben. Das kostet Leistung und macht die Administration träge, gerade wenn viel zu tun ist.

Es kommt bei Last nicht hinterher

  • Stapeln sich die Aufgaben, etwa nach einem großen Import oder zu Stoßzeiten, ist der Browser-Worker schnell überfordert. Die Warteschlange wächst dann schneller, als sie abgearbeitet wird.

Die saubere Alternative: der Worker als Hintergrunddienst

Einmal richtig eingerichtet, läuft er von allein

Die gute Nachricht: Für den Live-Betrieb ist Shopware längst auf einen besseren Weg vorbereitet. Dafür wird der Admin Worker deaktiviert. Die Warteschlange übernimmt stattdessen ein eigener Hintergrunddienst direkt auf dem Server, unabhängig davon, ob jemand im Backend ist.

Technisch übernimmt das ein Prozess auf der Kommandozeile (messenger:consume), der dauerhaft im Hintergrund läuft und von einem Prozess-Manager wie systemd oder Supervisor überwacht wird. Fällt er aus, wird er automatisch neu gestartet. Um die zeitgesteuerten Aufgaben, die Scheduled Tasks, kümmert sich ein zweiter Hintergrundprozess, damit auch wiederkehrende Jobs zuverlässig laufen.

Für dich heißt das konkret: Die Warteschlange wird rund um die Uhr abgearbeitet, auch nachts und am Wochenende. Das Backend bleibt schnell, weil es sich nicht mehr selbst um die Aufgaben kümmern muss. Und dein Shop verhält sich vorhersehbar, statt je nachdem, ob gerade jemand eingeloggt ist.

Dunkler Monitor mit Programmcode als Bild für den Worker als Hintergrundprozess

Wann sich eine eigene Queue lohnt

Für größere Shops einen Schritt weiter gedacht

Im Standard verwaltet Shopware die Warteschlange in der Datenbank. Für die meisten Shops reicht das problemlos aus. Wächst dein Shop aber stark, verarbeitet viele Bestellungen gleichzeitig oder fährt regelmäßig große Importe, kann die Datenbank zum Engpass werden.

Dann lohnt sich ein eigener Dienst nur für die Warteschlange, ein sogenannter Message Broker wie RabbitMQ oder Redis. Er nimmt die Aufgaben entgegen und entlastet die Datenbank, sodass auch unter Last alles flüssig durchläuft. Für einen kleinen oder mittleren Shop ist das kein Muss. Gut zu wissen ist nur, dass der Weg nach oben offen bleibt. Wenn du ohnehin über Wachstum nachdenkst, wirf auch einen Blick auf die Fair-Usage-Regeln von Shopware.

Läuft dein Worker sauber?

Ein kurzer Selbsttest

  • Kommen Bestätigungs- und Bestellmails sofort an, auch wenn niemand im Backend eingeloggt ist?
  • Sind Suchindex und Caches auch früh morgens aktuell, ohne dass jemand nachhelfen muss?
  • Laufen Importe und Exporte vollständig durch, ohne stehen zu bleiben?
  • Bleibt das Backend auch bei vielen Hintergrundaufgaben flüssig?
  • Weißt du, ob bei dir noch der Admin Worker aktiv ist oder schon ein Hintergrunddienst läuft?

Stand: Dieser Beitrag bezieht sich auf Shopware 6.7.0.0. In neueren Versionen können sich einzelne Befehle oder Pfade unterscheiden.

Unsicher, ob bei dir alles sauber läuft?

Schreib uns, wir hören zu

 Mail schreiben

Wenn du bei mehreren Punkten zögern musstest, läuft bei dir vermutlich noch der Admin Worker. Wenn du beim Setup oder generell mit deinem Shopware-6-Shop Hilfe brauchst, melde dich. Wir sehen uns dein Setup an und sagen dir direkt, was sich lohnt und was nicht.