Cron-Job Ausführung
-
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.