Produkt Indexierung hängt

Hi,

ich habe schon seit Tagen folgende Mitteilungen:

Produkt Indexierung

Circa -1850 Produkte verbleibend …

 

Medien-Indexierung

Circa 50 Medien verbleibend …

 

Ich glaube es hängt hier igendwo.

Unter var/log habe ich folgenden wiederkehrenden Eintrag gefunden.

[2020-11-04 11:39:36] request.ERROR: Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\NotFoundHttpException: “No route found for “GET /Cron/”” at vendor/symfony/http-kernel/EventListener/RouterListener.php line 136 {“exception”:"[object] (Symfony\Component\HttpKernel\Exception\NotFoundHttpException(code: 0): No route found for “GET /Cron/” at vendor/symfony/http-kernel/EventListener/RouterListener.php:136, Symfony\Component\Routing\Exception\ResourceNotFoundException(code: 0): No routes found for “/Cron”. at vendor/symfony/routing/Matcher/Dumper/CompiledUrlMatcherTrait.php:70)"}

 

Kann ich eventuell versuchen die Indexierung über bin/console zu starten - gibt es hier einen Befehl dafür?

Ich denke man kann das abarbeiten der Queue hier konfigurieren/per cli ausführen:

bin/console messenger:consume-messages default -vv --time-limit=60

Also der obige Error kommt einfach weil jemand versucht hat /Cron/ auf dem Server aufzurufen - kann also ignoriert werden.

Die Medien-Indezierung ist nun auch fertig geworden.

Allerdings hängt noch immer die Produkt-Indezierung mit:
 

Produkt Indexierung

Circa -1850 Produkte verbleibend …

 

bin/console scheduled-task:run und
bin/console messenger:consume

werden laufend ausgeführt machen aber nichts - 0 % CPU.

Bitte um Hilfe.

Kann man denn irgendwie schauen bei welchem Produkt er gerade hängt?

 

Hallo,

das selbe Problem habe ich auch und der Shop ist sehr träge und neue Produkte generieren, vorallem neue Varianten generieren geht sehr lange bis dahin das wir es abbrechen müssen. Ich habe schon alles mögliche in der CLI versucht und bis jetzt hat nichts gebracht. Leider finde ich keine möglichen Befehle die mir anzeigen wo er grade steht oder wie ich die Prozesse abbrechen könnte. Was auch interessant ist, die Anzahl was er indexieren möchte ändert sich immer wieder  (mal sind es 150, mal sind es 200 usw.) aber erfolgreich beenden kann er es einfach nicht.

Hallo,
ich habe das gleiche Problem, gibt es mittlerweile vielleicht eine Lösung?

Jein.
Also es gibt keine konkrete Lösung wenn es ins minus geht - wir haben hier die händisch die Datenbank bereinigt um das zu lösen.

Wozu es schon eine Lösung gibt, es zum allgemeinen hängen/lahm sein.
Ich versuche das kurz zu erklären.
Also normalerweise führt Shopware wenn man im Backend eingeloggt ist diese Hintergrundarbeiten aus (oder versucht es zumindest). Da dies ein Ressourcenmäßig sehr begrenzter Hintergrundaufruf ist, bleibt diese sehr leicht stecken sobald mal mehr zu tun ist.
Als Begründung warum Shopware das so macht, habe ich gelesen dass es hauptsächlich für die Entwicklung gedacht ist. Damit Entwickler nicht noch mehr einrichten müssen um zu starten. Allerdings ist diese Hintergrundabarbeitung gar nicht für den Produktiv-Einsatz gedacht und sollte deaktiviert werden. Stichwort Admin-Worker deaktivieren.

Wie das geht und wie die Abarbeitung richtig gemacht werden sollte wird hier erklärt.
https://docs.shopware.com/de/shopware-6-de/tutorials-und-faq/scheduled-tasks-anlegen

Was hier nicht erwähnt wird, man kann um die ganze Sache noch zu beschleunigen mehrere messenger:consume Arbeiter gleichzeitig laufen lassen.

Wir richten hier meist 2 ein. Diese werden bei uns meist über eine Systemd-Unit gemanagt. So kann man sicherstellen, dass die Prozesse sich nicht doch mal überschneiden. Geht alternativ über cron auch.

Edit: Habe die Antwort als Code posten müssen weil anscheinend Links auf docs.shopware.com verboten sind lol.