Do something
Shopware_CronJob_FooBarBaz
true
60
true
Mit einer Resources/cronjob.xml im o.g. Schema wird bei der Plugin Installation der Cronjob im Backend zwar registriert/angelegt, allerdings immer inaktiv. Wo liegt hier der Fehler?
Shopware Version: 5.3.4
Auch mit einer “1” statt “true”?
Hallo portrino,
der Fehler liegt nicht beim Anlegen des Cronjobs, sondern bei der Ausgabe der Jobs in ExtJS und im Cron DBAL Adapter.
Für true wird in der Datenbank die 1 gesetzt.
Allerdings wird in der getTableListAction des Config Backend Controller für die active Checkbox folgendes via Ajax übermittelt:
'active' => !empty($row['active']) && !empty($row['end']),
Und auch im DBAL Adapter wird in der Funktion getNextJob folgendes geprüft:
->andWhere('c.end IS NOT NULL')
Wie Du also siehst, MUSS s_crontab.end gesetzt sein (also nicht null). Ansonsten wird der Cronjob als inaktiv betrachtet.
In Deiner Plugin install Methode könntest Du einfach nach
parent::install($context);
noch ein Update auf s_crontab.end ausführen.
Viele Grüße,
Markus
2 „Gefällt mir“
Danke für’s „debuggen“ - aber in meinen Augen ist das dann ein Fehler von Shopware, da ein „korrektes“ Anlegen von Cronjobs via cronjob.xml somit (noch) nicht möglicht ist. Es ist auch nicht nur ein Ausgabe-Problem im Backend, denn via Shell
bin/console sw:cron:run
wird der Cronjob auch nicht ausgeführt, solang kein s_crontab.end gesetzt ist.
Das mit dem DB Update via install() im Plugin Bootstrap geht erstmal, ist aber meiner Meinung nach „von Hinten durch die Brust ins Auge“. Das muss der Core alleine machen, wenn ein Cronjob via Plugin cronjob.xml installiert wird.
Was sagt Shopware dazu? [@Moritz Naczenski](http://forum.shopware.com/profile/14574/Moritz Naczenski „Moritz Naczenski“)
1 „Gefällt mir“