Cron jobs wirklich automatisch ausführen
-
Anlass
Cron-Jobs werden nach meiner Beobachtung nur ausgeführt, wenn sich ein Benutzer einloggt oder auf CT zugreift, und das auch nur einmal pro Stunde (oder öfter wenn in den Admin-Einstellungen geändert). Wenn sich niemand einloggt, dann läuft auch kein Cron!
Das ist aus verschiedenen Gründen unglücklich:
-
man kann sich nicht darauf verlassen, dass Jobs bearbeitet werden, z.B. die Serienbrieferstellung, oder Mailversand
-
im Log wird der Start des Cron dem entsprechenden Benutzer zugewiesen. Im Log steht dann z.b. bei Benutzer xy, dass er 4 Mails versendet hätte. Hat er aber nicht, sondern sie wurden nur zufällig in dem cron-lauf versendet, den er unbewussterweise ausgelöst hat.
Wenn ich also sehen will, was Benutzer x im System gemacht hat, kommen zu viele Meldungen
Anforderung
-
Der Cron sollte (wie der Name schon sagt) regelmässig laufen, unabhängig davon, ob sich jemand einloggt (m.e. eher häufig, denn wenn er nichts zu tun hat, dann ist er auch schnell fertig.
-
Die Ausgabe des Cron sollte im UI abfragbar sein, oder im Log stehen aber mit geeigneten Filtern
-
die manuelle Ausführung sollte über das Berechtigungssystem abgesichert sein.
Workaround
Siehe https://forum.church.tools/topic/3766/cron-job-ausführung/4?_=1631871341699
-
-
@bwl21 Wenn man das Hosting bei Churchtools nutzt dann wird der Cron Job mindestens alle 4 Stunden angestoßen. Wenn in der Zwischenzeit Personen online sind auch öfters.
-
@davidschilling Die vier stunden finde ich zu lang, weil
- es probleme mit der Serienbrieferstellung gibt, die dann nicht weiter macht
- Mails an Admin (über das Symbol unten) nur beim nächsten cron verschickt werden