Cronjob Ausführung über CLI Problem

Hallo Zusammen,

 

nach langer Shopware Pluginentwicklung bin ich nun leider an einem Punkt angelang an dem ich mich an das Forum wenden muss.

Es geht um folgendes:

Ich habe ein Plugin entwickelt welches einen Servicecontainer und Services nach https://developers.shopware.com/blog/2015/11/11/best-practices-of-shopware-plugin-development/ implementiert.

Das Plugin implementiert ebenfalls einen Cronjob welcher über eine Install.php installiert wird. Die Run-Methode des Cronjobs befindet sich in der Boostrap.php und ruft einen Service auf:

public function OnRun($Argument)
{
   $this->get("My_Service")->OnCronRun($Argument);
}

Teste ich diesen Cronjob nun über www.meine-seite.de/backend/cron funktioniert dieser auch. 

Rufe ich den Cronjob allerdings über die CLI auf:

/bin/console sw:cron:run

erhalte ich die Fehlermeldung das mein Service nicht gefunden werden konnte. 

Ich vermute das mir an dieser Stelle einfach der richtige Shopkontext oder Backendkontext fehlt um über die Bootstrap einen Service zu holen.

Hat jemand mit dieser Problematik schonmal zu tun gehabt und kennt ggf. einen Workaround der den Aufruf über die CLI ermöglicht? Das Plugin soll später auch im Store landen weshalb wir hier beide Möglichkeiten der Cronjobausführung anbieten müssen/wollen.

Besten Dank im Voraus!

 

Mit freundlichen Grüßen

Dennis Bartholemy - WALSER Softwareentwicklung

Hey Dennis,

wie registrierst du den Service? Wahrscheinlich irgendein Event mit den Namen „StartDispatch“. Führe die Registrierung ebenfalls bei den Event „Shopware_Console_Add_Command“ aus und es sollte dann funktionieren.

Hallo Shyim,

 

Vielen Dank, das Event kannte ich noch gar nicht aber nun funktioniert alles wunderbar! :slight_smile: