Cronjob einrichten per Plugin Install

Hallo,

Wie kann man in der install-Methode eines Plugins einen Cronjob anlegen, der jede Nacht alle Artikel einer bestimmten Kategorie löscht, sobald die Anlage des Artikels länger al N Tage her ist?

Vielen Dank für euren Input :slight_smile:

Liebe Grüße

 

Hallo @MrFrox‍,

hier finden Sie wie kann man ein neue Cronjob erstellen:

https://developers.shopware.com/developers-guide/plugin-quick-start/?_ga=2.245728524.908979643.1557526452-1609790943.1542544063#plugin-cronjob

VG,

Tel.: +49 755 - 183 990 00 | Email: info@enbit.de | Web: http://enbit.de/

Vielen Dank für den Tipp. Ich habe es entsprechend umgesetzt und das Update des Pluginins durchgeführt. Daraufhin Erscheint mein Cronjob auch in der Liste im Backend unter Grundeinstellungen/System/Cronjobs und ist aktiv geschaltet. In meinem Subscriber habe ich nun einfach genau den Namen verwendet, den ich in der config.xml im name-Tag eingegeben habe. In der Funktion, die daraufhin ausgeführt werden soll, ist einfach nur ein dump(time());. Leider kommt keine Ausgabe in meinem dump-file an. Woran könnte das liegen?

Hallo @MrFrox‍,

es werde nichts geben in diese Fall, Sie müssen return deine Ausgabe in das Funktion.

also return time();

VG,

Tel.: +49 755 - 183 990 00 | Email: info@enbit.de | Web: http://enbit.de/

Es wäre auch hilfreich, wenn du dein Code posten würdest

Ich habe es so gemacht: die Datei PluginName/Resources/cronjob.xml:

        Test Cronjob
        PluginName_DoJob
        true
        60
        true

Mein Event Subscribe ich so:

public static function getSubscribedEvents()
{
    return [
       'PluginName_DoJob' => 'onDoJob'
    ]
}

public function onDoJob(\Shopware_Components_Cron_CronJob $job){
    dump('Geschafft');
}

 

Der Prefix fehlt im Event Namen Shopware_CronJob_

Du müsstest dich auf das Event Shopware_CronJob_PluginName_DoJob subscriben

Hallo,

das Ganze steht auch ausführlich in den Shopware Dokumentationen beschrieben: https://developers.shopware.com/developers-guide/plugin-quick-start/#plugin-cronjob .

Grüße

Sebastian

@Shyim‍ also so?

Die Datei PluginName/Resources/cronjob.xml:

        Test Cronjob
        Shopware_CronJob_PluginName_DoJob
        true
        60
        true

Mein Event Subscribe ich so:

public static function getSubscribedEvents()
{
    return [
       'Shopware_CronJob_PluginName_DoJob' => 'onDoJob'
    ]
}

public function onDoJob(\Shopware_Components_Cron_CronJob $job){
    dump('Geschafft');
}

 Leider geht es auch nicht. …und wenn ich Losschreibe “Shopware_CronJob_” in phpstorm, wird mir einiges an Suggestionen gegeben, aber mein Job ist nicht dabei.

Mein Cronjob wird übrigens ausgeführt, wenn ich im Browser auf www.url.de/backend/cron gehe,automatisch, alle 1 minute passiert das allerdings nicht.