Cronjob bricht nach einiger Zeit ab - liegt wohl an einem Fehler im PHP-Script - brauche Hilfe

Für allgemeine Software
Benutzeravatar
Wetterfrosch
Offline
Beiträge: 403
Registriert: 08 Dez 2020, 11:49
Wohnort: 79410 Badenweiler (350mNN) / Breisgau-Hochschwarzwald
Hat sich bedankt: 104 mal
Danksagung erhalten: 32 mal
Kontaktdaten:

Cronjob bricht nach einiger Zeit ab - liegt wohl an einem Fehler im PHP-Script - brauche Hilfe

#1

Beitrag von Wetterfrosch »

Hallo,

ich habe auf meinem Webspace einen Cronjob angelegt, der alle Minute ein PHP-Script anstößt.
Das funktioniert auch, doch nach ca. einer Woche, beendet der Cronjob seinen Dienst.
Ich habe beim Webhoster nachgefragt, und man teilte mir mit, es läge nicht am Cronjob sondern an dem Script was er anstößt.
Wenn man die Cronjob-Log-datei aufruft, taucht folgendes auf:
too many requests - try again later success



- uv locked - Transfer OKsuccess



too many requests - try again later success



- uv locked - Transfer OKsuccess



- uv locked - Transfer OKsuccess



too many requests - try again later success



- uv locked - Transfer OKsuccess



- uv locked - Transfer OKsuccess
Laut Webhoster bricht der Cronjob irgenwann, wenn die "many requests" zu viel sind ab.
Was bedeutet denn diese Fehlermeldung?

ich habe meinen PHP-Code mal durch einen Codeprüfer laufen lassen, dabei wird mir folgende Fehlermeldung ausgegeben:
Warning: file_get_contents(api.holfuy.com/live/?s=1497&pw=IlGlDPzPXV8zVbi&m=CSV&tu=C&su=km/h): failed to open stream: No such file or directory on line 23
Die zeile 23 die es betrifft, ist diese hier, mit der ich eine API abrufe und die Messwerte in ein Array schreibe:

Code: Alles auswählen

 23.     $arr = file_get_contents('http://api.holfuy.com/live/?s=1497&pw=xyz=CSV&tu=C&su=km/h');
 24.     $arr = explode(",",$arr);
Ich weiß nun nicht, was an meinen Script falsch läuft, denn es funktioniert ja, der Cronjob startet es alle Minute und das Script wird dann auch ausgeführt, hat Jemand eine Ahnung woran das liegen könnte, dass der Cronjob regelmässig nach ca. einer Woche abbricht?

Danke für die Hilfe
Zuletzt geändert von Wetterfrosch am 11 Aug 2022, 20:51, insgesamt 1-mal geändert.
wk893b
Offline
Beiträge: 134
Registriert: 23 Jan 2022, 09:13
Danksagung erhalten: 10 mal

Re: Cronjob bricht nach einiger Zeit ab - liegt wohl an einem Fehler im PHP-Script - brauche Hilfe

#2

Beitrag von wk893b »

Hallo,

mal so ganz pauschal, ohne alle Hintergründe und Fakten zu kennen.
Der Hoster erzählt Mist.
Ist meine Meinung.
Dem Cronjob ist es eigentlich egal, was du anstößt und ob du damit Erfolg hast.
Ich habe auch schon oft tote CJ über Monate laufen gehabt, weil das Script seine Aufgabe nicht mehr erfüllt hat.
Da gab es kein Gemeckere des CJ.

Vielleicht liegt es daran, dass das Serversystem stark belastet wird, vielleicht auch aufgrund eines "zu kleinen" Webpakets?
Das sagt der Hoster natürlich nicht.
Vielleicht haben die dazu eine "künstliche Bremse" eingebaut?
Deswegen liegt es am Script.
Beweise ihm erst mal das Gegenteil.

Ich bin in der Angelegenheit aber gerne für neue Erkenntnisse offen.
Viele Grüße

wk893b


https://bh.wetter-alarm.de/
Benutzeravatar
LE-Wetter
Offline
Beiträge: 1261
Registriert: 27 Nov 2020, 19:58
Wohnort: Leipzig
Hat sich bedankt: 37 mal
Danksagung erhalten: 96 mal
Kontaktdaten:

Re: Cronjob bricht nach einiger Zeit ab - liegt wohl an einem Fehler im PHP-Script - brauche Hilfe

#3

Beitrag von LE-Wetter »

Es gibt doch eine Reihe von kostenfreien Cronjob-Anbietern. Also würde ich es einfach mal mit einem anderen CJ probieren und schon weißt du Bescheid
Liebe Grüße von LE-Wetter

WS 888, Mete-On1 und WD4000 und
alte Barometer, Blitzortung, Radioaktivität
https://www.leipzig-wetter.de
www.regionalwetter-sa.de
www.wetternetz-sachsen.de
https://wetterhistorie-leipzig.de
Benutzeravatar
Wetterfrosch
Offline
Beiträge: 403
Registriert: 08 Dez 2020, 11:49
Wohnort: 79410 Badenweiler (350mNN) / Breisgau-Hochschwarzwald
Hat sich bedankt: 104 mal
Danksagung erhalten: 32 mal
Kontaktdaten:

Re: Cronjob bricht nach einiger Zeit ab - liegt wohl an einem Fehler im PHP-Script - brauche Hilfe

#4

Beitrag von Wetterfrosch »

Hab noch 2 weitere Cronjobs bei dem Hoster laufen, die mucken nicht rum.

Aber bezgl. free Cronjob-Anbieter, die die ich bisher gefunden haben, bieten als kleinstes Intervall aber nur 5 Minuten an, ich brauche aber 1 Minute, kennt ihr da einen?
wk893b
Offline
Beiträge: 134
Registriert: 23 Jan 2022, 09:13
Danksagung erhalten: 10 mal

Re: Cronjob bricht nach einiger Zeit ab - liegt wohl an einem Fehler im PHP-Script - brauche Hilfe

#5

Beitrag von wk893b »

CODE: ALLES AUSWÄHLEN

23. $arr = file_get_contents('http://api.holfuy.com/live/?s=1497&pw=I ... =C&su=km/h');
24. $arr = explode(",",$arr);

Ändere bitte mal Zeile 24 folgendermaßen ab:
24. $arr1 = explode(",",$arr);

Weiß zwar nicht ob das was mit dem CJ-Problem zutun hat, aber bei mir wird sonst auch ein Code-Fehler ausgegeben, wenn ich das teste.
Viele Grüße

wk893b


https://bh.wetter-alarm.de/
Benutzeravatar
Wetterfrosch
Offline
Beiträge: 403
Registriert: 08 Dez 2020, 11:49
Wohnort: 79410 Badenweiler (350mNN) / Breisgau-Hochschwarzwald
Hat sich bedankt: 104 mal
Danksagung erhalten: 32 mal
Kontaktdaten:

Re: Cronjob bricht nach einiger Zeit ab - liegt wohl an einem Fehler im PHP-Script - brauche Hilfe

#6

Beitrag von Wetterfrosch »

Hallo,

ich habe diesen Cronjob jetzt mal auf einen externen Cronjobanbieter "cron-job.org" angelegt und siehe da, der Cronjob wird ohne murren alle Minute zuverlässig ausgeführt.
was dabei aber aufgefallen ist, der Cronjob läuft für das Script zwischen 4 und 5 Sekunden, eventuell lag es an dieser langen Laufzeit, dass der cronjob bei meinem Webhoster zuvor immer wieder abgebrochen wurde, denn die anderen Cronjobs die ich noch laufen habe, liegen alle im ms-Bereich.
Ich habe das Script per Laufzeitkontrolle mal unterteilt und herausgefunden, ab welcher Stelle das Script langsam läuft, es lag an einer Schleife, die falsch war und somit mehrfach durchlaufen wurde, Problem nun beseitigt und nun scheint es zu funktionieren.
Zuletzt geändert von Wetterfrosch am 10 Aug 2022, 23:39, insgesamt 3-mal geändert.
wk893b
Offline
Beiträge: 134
Registriert: 23 Jan 2022, 09:13
Danksagung erhalten: 10 mal

Re: Cronjob bricht nach einiger Zeit ab - liegt wohl an einem Fehler im PHP-Script - brauche Hilfe

#7

Beitrag von wk893b »

Die Frage ist, ob man das nicht einfach akzeptiert, wenn die Daten beim Empfänger, aus welchen Gründen auch immer, nicht ankommen.

Wenn du den Empfang im Sekunndenbereich erzwingen willst, reagiert das Empfängersystem entsprechend und vermutet evtl. eine DDos-Attacke.
Das ist dann ein Bärendienst.
Deswegen auch die too many requests.

Ich persönlich würde den Mangel von WU, etc. einfach klaglos hinnehmen.
Die können ja auch ihr System verbessern, wenn denen an den fehlenden Daten gelegen ist.
Aber vermutlich wird es die nicht jucken.
Von daher ist die jetzige Vorgehensweise eine Gradwanderung.

Bildlich gesprochen, du ernährst die per Zwang und wenn sie genug haben kotzen sie dir vor die Füße.
Viele Grüße

wk893b


https://bh.wetter-alarm.de/
Benutzeravatar
olicat
Offline
Beiträge: 2003
Registriert: 07 Dez 2020, 20:33
Wohnort: Hohen Neuendorf
Hat sich bedankt: 26 mal
Danksagung erhalten: 412 mal
Kontaktdaten:

Re: Cronjob bricht nach einiger Zeit ab - liegt wohl an einem Fehler im PHP-Script - brauche Hilfe

#8

Beitrag von olicat »

Hi!
wenn ich das komplette Script manuell aufrufe, ich immerwieder die meldung erhalte "to many requests - try again later success" was ja auch in der Fehlermeldung der Cronjob-log-Datei stand.
Die Fehlermeldung klingt aehnlich. Vielleicht betrifft Dich ja auch die Problematik aus diesem Beitrag.

Oliver
Benutzeravatar
Wetterfrosch
Offline
Beiträge: 403
Registriert: 08 Dez 2020, 11:49
Wohnort: 79410 Badenweiler (350mNN) / Breisgau-Hochschwarzwald
Hat sich bedankt: 104 mal
Danksagung erhalten: 32 mal
Kontaktdaten:

Re: Cronjob bricht nach einiger Zeit ab - liegt wohl an einem Fehler im PHP-Script - brauche Hilfe

#9

Beitrag von Wetterfrosch »

uups, hab eure Antworten erst jetzt gesehen, also Problem liegt definitiv an der Schleife, doch ich glaube sie war falsch, schau mal so war sie zuerst:

Code: Alles auswählen


	
// Variable anlegem
$switch = true;
// Zählvariable anlegen
$i = 0;	


// solange $switch true ist wird die folgende Schleife 3mal ausgeführt  
while($i < 3 && $switch ){
	// Funktion aufrufen - Ergebnis in Variable speichern
	$pushResp = pushToWU($urlWUb);
	// wenn Ergebnis "success" --> Variable $switch auf false stellen
	if($pushResp == "success"){
		$switch = false;
	}
	// Zählvariable erhöhen
	$i++;
	

	
}
da fehlte in der while-bedingung doch noch das == true, oder?
also so:

Code: Alles auswählen


// Variable anlegem
$switch = true;
// Zählvariable anlegen
$i = 0;	


// solange $switch true ist wird die folgende Schleife 3mal ausgeführt  
while($ib < 3 && $switch == true ){
	// Funktion aufrufen - Ergebnis in Variable speichern
	$pushResp = pushToWU($urlWUb);
	// wenn Ergebnis "success" --> Variable $switch auf false stellen
	if($pushResp == "success"){
		$switch = false;
	}
	// Zählvariable erhöhen
	$i++;
	

	
}
sehe ich das richtig?
Benutzeravatar
Wetterfrosch
Offline
Beiträge: 403
Registriert: 08 Dez 2020, 11:49
Wohnort: 79410 Badenweiler (350mNN) / Breisgau-Hochschwarzwald
Hat sich bedankt: 104 mal
Danksagung erhalten: 32 mal
Kontaktdaten:

Re: Cronjob bricht nach einiger Zeit ab - liegt wohl an einem Fehler im PHP-Script - brauche Hilfe

#10

Beitrag von Wetterfrosch »

wk893b hat geschrieben: 10 Aug 2022, 23:12 Die Frage ist, ob man das nicht einfach akzeptiert, wenn die Daten beim Empfänger, aus welchen Gründen auch immer, nicht ankommen.

Wenn du den Empfang im Sekunndenbereich erzwingen willst, reagiert das Empfängersystem entsprechend und vermutet evtl. eine DDos-Attacke.
Das ist dann ein Bärendienst.
Deswegen auch die too many requests.

Ich persönlich würde den Mangel von WU, etc. einfach klaglos hinnehmen.
Die können ja auch ihr System verbessern, wenn denen an den fehlenden Daten gelegen ist.
Aber vermutlich wird es die nicht jucken.
Von daher ist die jetzige Vorgehensweise eine Gradwanderung.

Bildlich gesprochen, du ernährst die per Zwang und wenn sie genug haben kotzen sie dir vor die Füße.
Problem, wenn ich es ohne Schleife sende, kam es in der Vergangenheit immer wieder vor, dass über einen Zeitraum von mehreren Minuten (bis zu 8 Minuten) keine Daten bei WU angekommen sind, d.h. wenn ich im 1 Minutentackt sende, kann es sein, dass bis zu 8 Sendeversuche nicht angekommen sind und da WU die Datenbank ist, auf der ich auch die Windspitzen speichere, sind 8 Minuten ohne Aufzeichnung echt doof.
Deswegen wollte ich halt mind. 3 Sendeversuche einbauen, bevor die weitere Minute abläuft.
Aber wie ich oben geschrieben habe, hatte ich in der Schleife augenscheinlich ein " == true " verloren, deswegen wurde augenscheinlich die Schleife immer 3x durchlaufen, das war wohl der Fehler.
Zuletzt geändert von Wetterfrosch am 12 Aug 2022, 14:41, insgesamt 2-mal geändert.
Antworten