Elastic Search - Backlog

Hallo,
wir verwenden bei einem Projekt Elastic Search und befüllen diese über eine Shopware CLI Plugin und der API.
D.h. es wird über die Console eine Import/Update Comand aufgerufen, welcher dann über die API Ressource die Artikel updatet.

$this->articleResource = \Shopware\Components\Api\Manager::getResource('Article');
...
...
$this->articleResource->update($articleID, $article);

Das klappt soweit wunderbar und die Artikel sind vorhanden bzw. geändert im Backend von Shopware:

Macht man im Shopware eine Änderung des Artikels, so wird dies in die Tabelle s_es_backlog geschrieben. Somit weiß der Backlog Service, dass dieser Artikel neu nach Elastic Search synchronisert werden muss. Über die API und ein Artikel Update wird dieser Eintrag leider nicht geschrieben. Ich kann leider nichtherausfinden warum. Laut Shopware Support funktioniert das und Sie können das Problem nicht nachstellen!

Was ich bis jetzt herausgefunden habe:

Elastic Search Backlog Registrierung:
shopware/services.xml at 5.2 · shopware/shopware · GitHub

Der Backloger wird auf doctrine.event_subscriber Registriert.
shopware/DoctrineEventSubscriberCompilerPass.php at 384666b210810803b75cb3aa47c131edb72fddfe · shopware/shopware · GitHub

Somit sollte der Service bei jedem Model Event aufgerufen werden.Dies ist ja auch nötig um die Artikel Updates in die Backlog Tabelle zu schreiben.
Wie bereits erwähnt, klappt dies beim Ändern von Artilkel im Backend. Aber über unser Consolen Plugin (CLI) eben nicht.

Hat jemand dazu eine Idee, warum dies nicht funktioniert?

Danke & Viele Grüße
ottscho

 

P.S. ich bin für jeden Tipp danbkar.

 

 

Ich habe nun von Support noch Antwort erhalten:

der Backlog sollte diesem Subscriber erzeugt werden:
engine/Shopware/Bundle/ESIndexingBundle/Subscriber/ORMBacklogSubscriber.php
Und dieser Subscriber sollte im CLI-Modus geladen werden.

Leiderweiß ich nun auch nicht so richtig mehr. Gibt es den noch weitere Kollegen, welche sich hier mit Elastic Search beschäftigen?
Ich kann definitiv sagen, dass bei uns bei einem Artikelupdate über die CLI und ArticleRessource kein Backlog geschrieben wird.

>Und dieser Subscriber sollte im CLI-Modus geladen werden.
Wird der nun in der CLI geladen, oder muss ich diesen selbst einbinden?
 

Ich bin nun noch einen Schritt weiter gekommen.

Alles läuft bis hier hin: shopware/ORMBacklogSubscriber.php at 5.2 · shopware/shopware · GitHub

Wann wird Enlight_Controller_Front_DispatchLoopShutdown ausgeführt?

Die Funktion processQueue() wird nicht ausgeführt. Hat jemand eine Idee?