Cronjob via cronjob.xml immer inaktiv nach Plugin Installation

        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”?

Ja, das ändert nichts…

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“