Zum Inhalt springen

Hintergrundaufgaben

P2Lab Mirakl führt 14 geplante Aufgaben im Hintergrund aus — sie holen Bestellungen, schicken Bestände, frischen Daten auf, räumen alte Protokolle weg und so weiter. Keine davon tut etwas, solange nicht zwei Dinge auf Ihrem Host laufen:

  1. Ein Scheduler, der fällige Aufgaben anstößt. In einer Shopware-Installation ist das der Befehl scheduled-task:run, üblicherweise einmal pro Minute über Cron aufgerufen.
  2. Ein Hintergrundprozess, der die angestoßene Arbeit ausführt. Das ist der Befehl messenger:consume async, als langlaufender Prozess gehalten.

Ohne den Scheduler werden Aufgaben nie fällig. Ohne den Hintergrundprozess stapelt sich die angestoßene Arbeit in der Warteschlange und nichts passiert.

Jede Aufgabe läuft in einem Standardintervall und kann auf der Shopware-Adminseite Einstellungen → System → Geplante Aufgaben neu justiert werden. Synchronisationsbezogene Intervalle lassen sich auch pro Funktion auf dem Reiter Mirakl → Einstellungen → Synchronisierungseinstellungen setzen — siehe Einstellungen.

AufgabeStandardintervallWas sie tut
Bestandssynchronisation15 Min.Schickt Bestandsaktualisierungen für alle aktiven Angebotszuordnungen an den Marktplatz.
Bestellimport30 Min.Holt neue und aktualisierte Bestellungen von jedem Marktplatz und erstellt sie in Shopware.
Produktexport30 Min.Nimmt Produkte, die für den Export vorgemerkt sind, und sendet sie an den Marktplatzkatalog.
Importstatus-Prüfung5 Min.Fragt laufende Produkt-, Angebots- und Bestandsimporte auf Abschluss ab; holt bei Fehlern Berichte zu einzelnen Zeilen.
Nachrichtensynchronisation30 Min.Holt neue eingehende Bestellnachrichten. Standardmäßig aus.
Bestelldokument-Synchronisation30 Min.Holt neue eingehende Bestelldokumente. Standardmäßig aus.
Dokumentanforderungs-Synchronisation24 Std.Holt vom Betreiber ausgestellte Dokumentanforderungen (Rechnungen, Gutschriften). Standardmäßig aus.
Rechnungssynchronisation24 Std.Holt neue Rechnungen vom Marktplatz. Standardmäßig aus.
Transaktionsprotokoll-Synchronisation24 Std.Holt neue Einträge aus dem Transaktionsprotokoll des Marktplatzes. Standardmäßig aus.
Transaktionsprotokoll-Export-Abfrage5 Min.Fragt den asynchronen Transaktionsprotokoll-Exportauftrag des Betreibers ab und lädt die Datei herunter, sobald sie bereit ist.
API-Protokoll-Aufräumung24 Std.Löscht API-Protokoll-Zeilen, die älter sind als API-Protokoll-Aufbewahrung (Tage).
Synchronisationsprotokoll-Aufräumung24 Std.Löscht Sync-Protokoll-Zeilen, die älter sind als Synchronisierungsprotokoll-Aufbewahrung (Tage).
Aufgaben-Aufräumung24 Std.Löscht abgeschlossene Einträge aus der Tasks-Liste.
Export-Aufräumung1 Std.Löscht abgeschlossene Produktexport-Einträge und die erzeugten CSV-Dateien.

Jede Synchronisation hat ihren eigenen Hauptschalter auf dem Reiter Mirakl → Einstellungen → Synchronisierungseinstellungen. Wenn der Schalter aus ist, läuft die geplante Aufgabe weiterhin in ihrem Intervall, der Handler überspringt sie aber — es wird kein Marktplatz-Aufruf gemacht, kein dauerhafter Zustand geändert. Den Schalter auszuschalten ist der empfohlene Weg, eine Synchronisation zu pausieren.

Standardmäßig:

  • Bestandssynchronisierung aktivieren, Bestellimport aktivieren, Produktexport aktivieren — an.
  • Nachrichtensynchronisierung aktivieren, Bestelldokument-Synchronisierung aktivieren, Dokumentanforderungs-Synchronisierung aktivieren, Rechnungssynchronisierung aktivieren, Transaktionsprotokoll-Synchronisierung aktivieren — aus. Schalten Sie sie nach Bedarf ein.

Die vier Aufräumaufgaben (API-Protokoll-Aufräumung, Synchronisationsprotokoll-Aufräumung, Aufgaben-Aufräumung, Export-Aufräumung) haben keinen Schalter — sie laufen immer. Sie verwenden die Aufbewahrungseinstellungen auf der Karte Protokolle des Reiters Mirakl → Einstellungen → Optionen.

Wenn Sie aus dem Adminbereich etwas anstoßen, das länger dauert — ein manueller Export, eine manuelle Synchronisation, das Auffrischen von Referenzdaten, ein Assistentenschritt mit Fortschrittsanzeige — legt das Plugin einen Eintrag in der Tasks-Liste an (Dashboard → Quick StartTasks), den der Adminbereich auf Fortschritt abfragt.

Jeder Eintrag durchläuft diese Stufen: Wartet → In der Warteschlange → Verarbeitung → Abgeschlossen (oder Fehler, oder Abgebrochen). Die Liste zeigt den Prozentsatz und die letzte Nachricht. Die Aufgabe Aufgaben-Aufräumung entfernt abgeschlossene Einträge nach einem Tag.

Wiederherstellung, wenn ein Hintergrundprozess stirbt

Abschnitt betitelt „Wiederherstellung, wenn ein Hintergrundprozess stirbt“

Das Plugin ist so gebaut, dass es Neustarts der Hintergrundprozesse übersteht, ohne Arbeit zu verlieren oder zu verdoppeln:

  • Selbstverkettende Chargen — lange Uploads stoßen die nächste Seite an, bevor sie zurückkehren, sodass ein Absturz mitten in der Charge höchstens eine Seite verliert. Der nächste geplante Lauf findet sie wieder und macht weiter.
  • Cursor-basierte Synchronisationen (Bestellimport, Nachrichten-, Dokument-, Rechnungs-, Transaktionsprotokoll-Synchronisation) merken sich, wo sie zuletzt waren. Ein Absturz bedeutet, dass beim nächsten Lauf vom selben Punkt aus weitergemacht wird — keine Duplikate, keine ausgelassenen Datensätze.
  • Drosselungs-Sperren — die Minutenpause-Sperre (siehe API-Drosselung) gibt sich nach kurzer Zeit selbst frei, wenn der Prozess, der sie gehalten hat, gestorben ist.