Modul-Vorstellung: Cronjob für Modul-Entwickler

oxid6
#1

Ho!

Ich möchte euch gerne mein Modul Oxid-Cronjob für Oxid 6 vorstellen.

Mit diesem Modul, können in der Datei metadata.php eines Modules zusätzlich zu Controllern auch “cronjobs” hinterlegt werden. Weitere Informationen zu Installation und Verwendung, findet ihr in der Readme auf der Github-Seite.

Wir haben einige selbstentwickelte Module in unserem Shop, welche Controller für einzelne Cronjobs zur Verfügung stellen. Mit dem Cronjob-Modul, können wir alle Controller auf einmal (nacheinander) auslösen.

Das Modul ist kostenlos nutzbar und kann per Composer installiert werden.

Fehler und Ähnliches bitte auf Github melden.

1 Like
#2

Hi,
ein Zeitmanagement lese ich aber da nicht heraus. Oder wie kann sichergestellt werden das CronJob 1) stündlich um :00 ausgeführt wird und CronJob 2) aller 4 Stunden jeweils :05.

#3

Ho!

guter Hinweis, danke. Cronjobs können nur im Server hinterlegt werden, PHP alleine wäre dazu nicht in der Lage. Mit Zeitkonfiguration, wären das poor-man-cronjobs, die würden dann aufgerufen, wenn ein User die Seite besucht und der letzte Zeiteintrag älter ist als der Zeitpunkt des aktuellen Aufrufes.

Kann ich grundsätzlich nachrüsten, wenn der Bedarf besteht.

Edit: Allerdings brauche ich dazu konkrete Anwendungsbeispiele, wann genau z.B. sollte ein Modulentwickler entscheiden dürfen, wie oft sein Modul ein Poor-man auslösen darf.

LG
Sascha

#4

Hi,

im Grunde war dies eine Frage was der Sinn dieses Moduls ist, bzw. wie die Anwendungsfälle liegen.
Benötige ich die Ausführung eines Scripte, dann richt einen CronJob beim Provider ein, rufe das Script selbst im Browser oder auf der Console auf.
Selbst hatten wir früher schon überlegt einen CronJob-Manager zu erstellen. Dazu ist es nie gekommen, und im Grund ist es ein Modul mehr im Shop das ständig gepflegt und aktualisiert werden muss.

In einem Liveshop sieht die Situation anders aus, und der Kundenserver ist nicht immer der schnellste. So richten wir neue CronJobs auch schon mal 5min / 10min nach :00 damit die anderen 5 CronJos auf :00 noch richtig ausgeführt werden können.

Und muss es ein ‘Poor-man’ sein?
Warum solch ein Scrip nicht einmal pro Minute oder alle 5min als CronJob aufrufen lassen?
In der Konfiguration wird dann das Zielscript + Zeitintervall hinterlegt und entsprechend ausgeführt. Und schon hast du eine Art Zeitsteuerung mit Interface.

Als Entwickler kann man Vorgaben / Empfehlungen für die Ausführung machen. Aber dann im Kundenshop legt der Shopbetreiber die Ausführung fest, selbst wenn er nur den Vorschlägen folgt bzw diese abnickt.

vg Markus

#5

Ho!

da haben wir wohl aneinander vorbeigeredet, bzw ich bin von etwas ganz Anderem ausgegangen :slight_smile:

Die Idee gefällt mir, die bei uns installierten Module haben aktuell nicht so viel last, daher wird mit dem Modul einfach alles gleichzeitig ausgeführt. Aber klar, das Script so oft zu triggern und einfach zu prüfen ob ein Cronjob evt. später rennen soll macht Sinn.

Pack ich auf die Todo-Liste. Danke!