Die Synchronisierung startet nicht

In einer funktionierenden Shopware 6 Installation sollte dieser Schritt bereits erledigt sein, aber es muss sichergestellt sein, dass die Scheduled Tasks und die Message Queue entsprechend abgearbeitet werden.

Message Queue

Folgende Command sollte aufgerufen werden:

bin/console messenger:consume async --time-limit=60

Weitere Informationen sind hier zu finden: https://symfony.com/doc/current/messenger.html#deploying-to-production und https://developer.shopware.com/docs/guides/hosting/infrastructure/message-queue#execution-methods

Scheduled Tasks

Für die Scheduled Tasks sollte folgender Command aufgerufen werden:

bin/console scheduled-task:run

Startet die Synchronisierung nach wie vor nicht, sind diese Schritte zu prüfen:

  1. In der Datenbank Tabelle scheduled_task gibt es vier Tasks, die durch das Plugin registriert worden sind:
  • jett.mc_ecommerce.purge_log
  • jett.mc_ecommerce.subscriber_sync
  • jett.mc_ecommerce.stats_task
  • jett.mc_ecommerce.sync_task

Alle Tasks sollten im Idealfall auf scheduled stehen. Ist dies nicht der Fall und einer der Tasks steht z.B. auf failed, sollte in der Datenbank Tabelle messenger_messages geprüft werden, ob es Messages gibt, die in der failed Queue registriert worden sind. Ist dies der Fall, sind hier Fehlermeldungen in der Spalte body oder header zu finden.

Danach sollte der Status des Tasks wieder auf scheduled gesetzt werden. Nun kann bei der nächsten Ausführung überprüft werden, ob der Task weiterhin fehlschlägt.

Wenn z.B. das next_execution_date des Tasks in der Tabelle scheduled_task in der Vergangenheit liegt, kann es sein das der Task nich ausgeführt wird. Dies kann ggf an #2 liegen.

  1. Hilft dies nicht, kann es sehr wahrscheinlich daran liegen, dass die Ausführungszeit der Tasks zu lange dauert und die Tasks oben gar nicht ausgeführt werden, oder durch den Server abgebrochen werden. Hier können zwei Dinge Abhilfe schaffen:
  • Das max_execution_time des CLI PHP Prozesses sollte geprüft und ggf erhöht werden.
  • Das Synchronisierungslimit in den Plugin Einstellungen kann von 500 (default) verringert werden, um die Ausführungszeit geringer zu halten.