Cron-Job Ausführung
-
Hallo zusammen,
ich habe gelesen, dass der Cron-Job nur ausgeführt wird, wenn man sich auf der Seite bewegt. Da wir aktuell noch nicht viel mit CT arbeiten, ist dies für uns in der Regel nicht ausreichend, da wichtige Mails zu spät versendet werden.
Ist es möglich die Cron-Jobs nach einem Zeitplan auszuführen? Zum Beispiel mindestens 1x pro Tag am Ende des Tages? -
Wir haben das Problem auf dem Schirm und werden es demnächst für Hostingkunden lösen.
Selfhostingkunden müssen sich selbst einen Cronjob einrichten.Wenn du nicht auf uns warten willst kannst du selbst den Cronjob bei euch regelmäßig triggern. Z.B. so:
curl -v 'https://$INSTANZNAME.churchtools.de/?q=cron&manual=true'
-
@Andrej Ich würde dir empfehlen, den Cronjob entweder von deinem Hosting-Provider ausführen zu lassen, oder bei https://cron-job.org/ einfach einen kostenlosen Account zu erstellen.
Die URL hat dir @davidschilling ja schon gesagt?@davidschilling Was macht eigentlich der "Cronjob", der mit jedem Seitenaufruf gestartet wird? Der mit "standby=true"?
-
Das ist schon der normale Cronjob, der wird einmal pro Stunde ausgeführt. Kann aber in den Admineinstellungen geändert werden.
manual=true
sorgt dafür, dass er sicher ausgeführt wird. -
Wieso hat @Andrej dann diese Probleme?
@Andrej Gibt es so wenig Nutzer bei euch, dass die Seite nicht 1x pro Tag aufgerufen wird?@davidschilling: Verstehe ich dass dann richtig, dass der "Cronjob" der als PNG geladen wird zwar immer aufgerufen wird, aber nur 3600 s nach der letzten Ausführung tatsächlich was tut?
Wenn das normale Verhalten sowieso so ist, warum braucht man dieses Standby-Flag? -
Der Cronjob wird bei jedem laden der Seite aufgerufen aber nur einmal pro Stunde auch wirklich ausgeführt, abhängig davon wie man das eingestellt hat.
Bei kleineren Gemeinden oder ChurchTools Installationen kommt es schonmal vor, dass sich einen ganzen Tag niemand einloggt.
-
@davidschilling Danke, so hatte ich es erwartet. Magst du bitte noch meine letzte Frage beantworten, würde mich interessieren?
-
@milux Weiß ich auch nicht genau.
-
Hast du viel Erfahrung mit https://cron-job.org?
Ich hab das gerade mal getestet und festgestellt, dass er bei längeren Antwortzeiten Probleme gibt.
Nutzt du das für eure ChurchTools Instanz?Es geht mir dabei nur für eine Dokumentation für Selfhoster.
-
Wir haben es mal getestet, es erschien uns zuverlässig.
Derzeit verwenden wir die Cronjobs von ALL-INKL. Es ergibt einfach mehr Sinn, Provider-eigene Jobs zu verwenden, wenn sie verfügbar sind.Welcher Natur sind diese Probleme genau, und welche Antwortzeiten meinst du? Beziehst du dich auf die Geschwindigkeit des Servers, der CT hostet?
-
Klar wenn der Provider selbst so etwas anbietet macht es Sinn das zu benutzen.
Es geht um die Antwortzeit des Servers. Beim Cron kann das mal ein paar Sekunden dauern und https://cron-job.org Deaktiviert Jobs nach 5 fehlgeschlagenen Versuchen. Und fehlgeschlagen bedeutet bei denen auch länger als x Sekunden die man nicht selbst konfigurieren kann. Zumindest konnte ich nicht herausfinden wo man das konfiguriert. -
@davidschilling
Nun, laut dem FAQ gibt es ein Zeitlimit von 30 Sekunden, und eine Deaktivierung tritt nach 15 Fehlschlägen auf.
Haben gewöhnliche Self-Hosting-Kunden bei Ausführung des Cronjobs regelmäßig Laufzeiten über 30 Sekunden? 15 mal hintereinander?
Die 1024-Byte-Beschränkung könnte ein Problem sein. Wäre vielleicht nicht schlecht, eine Aufruf-Variante ohne Header/Footer zur Verfügung zu stellen, um die Ausgabe des Cronjobs ein wenig abzuspecken.
Ansonsten gibt es diverse Techniken, mit denen man PHP-Skripte so ausführen kann, dass sie auch bei geschlossener Verbindung weiter arbeiten. Man kann sogar selbst die Verbindung zum Client beenden und im Hintergrund die Jobs abarbeiten, die Klassiker findet man hier in der Kommentar-Sektion: https://secure.php.net/manual/en/features.connection-handling.php -
Seit dem Umzug auf die neue Serverinfrastruktur wird jetzt bei jeder Instanz die bei uns gehostet ist der Cronjob einmal pro Stunde ausgeführt.
-
@davidschilling Gute Sache, aber was ist mit den Self-Hostern?
Ich dachte der Plan war, für sie einen Leitfaden zur Einrichtung eines geeigneten Cronjobs zu erstellen, oder habe ich das falsch verstanden? -
@milux Dokumentation dafür gibt es hier: https://intern.church.tools/?q=churchwiki#WikiView/filterWikicategory_id:0/doc:Cron-Job/
-
Hallo @davidschilling
die Möglichkeit für Selfhoster, den Cronjob via CLI auszuführen, funktioniert nicht mehr (seit ca. 3.30.0). Cronjob via HTTP ist für uns nicht möglich, da unsere CT Instanzen nicht ohne weitere Authentifizierung im Internet erreichbar sind. Die folgende Fehlermeldung wird für cron.php sowie nur für jede CT-PHP-Datei ausgeben.web@f0c4b64973a4:/var/www/html# php /var/www/html/system/local/cron.php Method not allowed Method not allowed Method not allowed. Must be one of: GET, POST, PUT, PATCH, DELETE, OPTIONS
-
@steav Welche Art der Authentifizierung benutzt ihr noch zusätzlich? Basic Auth lässt sich z.B. einfach in die Url integrieren.
-
@davidschilling
Danke für die schnelle Antwort. Nein, kein Basic Auth; wir verwenden CT als Nextcloud-App, haben einen Wrapper erstellt. Ohne Nextcloud-Login erreicht man die CT Instanz prinzipiell nicht.
Daher wäre es super, wenn die in den Docs beschriebene CLI-Ausführung wieder funktionieren würde. -
@steav Ich kenne nextcloud jetzt nicht besonders gut, aber es könnte trotzdem basic auth sein, dass da benutz wird.
Wie lautet denn die URL zu eurer Installation?
-
Unabhängig davon ob es Basic Auth ist (was es ws. nicht der Fall ist), würden wir dennoch die saubere Lösung via lokalem Cronjob bevorzugen, da wir in unserem Gemeindenetzwerk immer mehr Instanzen hosten (jede mit eigenem Key natürlich). Jede davon läuft als eigene VM mit jeweils 5min Cronjob, welcher aktuell nicht funktioniert.