Fragen zu Cronjobs

Guten Morgen,

 

ich verstehe die Funktionsweise von Cronjobs in Shopware noch nicht ganz. Ich möchte ein Plugin programmieren, das mir einen Cronjob anlegt, welcher alle 120 Sekunden ausgeführt wird. Der Code, der ausgeführt werden soll, sollte sich im Plugin befinden - der Cronjob soll also z. B. die Funktion pruefeBestellungen() aufrufen.

 

Nun meine Fragen dazu:

  1. Wie hängen die im Betriebssystem hinterlegten Cronjobs mit Shopware zusammen?

  2. Bei den Cronjobs in der Tabelle s_crontab ist eine Action hinterlegt. Ist eine Action eine Methode im Plugin?

  3. Ich habe nun einen neuen Cronjob in die s_crontab-Tabelle eingetragen. Was ist der nächste Schritt?

  4. Wofür benötige ich die Datei cronjobs.xml?

  5. Brauche ich einen Subscriber, der auf Shopware_CronJob_MeineAction hört, oder kann ich das auch in getSubscribedEvents() der Bootstrap.php machen?

 

Um Erklärungen bin ich dankbar, ich habe nämlich noch nicht ganz umrissen, wie die Cronjobs in Shopware realisiert werden.

Niemand?

Kann man eigentlich alles sauber in der Doku nachlesen, so mit der Zeit haben die Leute hier halt keine Lust mehr, die Dokuvorleser zu machen  Sticking-out-tongue
Da Server-Scripte keine “Schleifen” und Windows-Eventsysteme haben, starten sie und enden sie, so auch ein Cron. Der wird von aussen aufgerufen - Shopware entscheidet dann nur, ob er auch ausgeführt wird. Entweder über einen HTTP-Request oder PHP-Aufruf auf Console. :
https://community.shopware.com/Cronjobs_detail_1102.html

Wir man sich selber Crons baut, ist auch sehr gut in den Devdocs eschrieben - Forum oben Menü Button rechte Seite:

https://developers.shopware.com/developers-guide/plugin-quick-start/#plugin-cronjob
Mehr Magie steckt da nicht hinter: Im Beispiel die onSendBirthdayMailCronjob erledigt den Job.

Vielen Dank für die Hilfe. Habe es jetzt hinbekommen, den Cronjob einzurichten.

 

Allerdings scheint es Probleme beim Controller zu geben:

In meiner Pluginname.php höre ich in 

 getSubscribedEvents()

auf 

 Shopware\_CronJob\_ActionName, 

allerdings wird die dort hinterlegte Funktion nicht aufgerufen. Woran könnte das denn liegen?