Cronjob bricht nach einiger Zeit ab - liegt wohl an einem Fehler im PHP-Script - brauche Hilfe
-
- Beiträge: 81
- Registriert: 07 Dez 2020, 18:19
- Wohnort: Ulm / Grimmelfingen
- Hat sich bedankt: 10 mal
- Danksagung erhalten: 18 mal
Re: Cronjob bricht nach einiger Zeit ab - liegt wohl an einem Fehler im PHP-Script - brauche Hilfe
Du hast eine PN wegen der API....
- Wetterfrosch
- Beiträge: 477
- Registriert: 08 Dez 2020, 11:49
- Wohnort: 79410 Badenweiler (350mNN) / Breisgau-Hochschwarzwald
- Hat sich bedankt: 129 mal
- Danksagung erhalten: 37 mal
- Kontaktdaten:
Re: Cronjob bricht nach einiger Zeit ab - liegt wohl an einem Fehler im PHP-Script - brauche Hilfe
Wenn du mich meinst, es kam keine PN an.
-
- Beiträge: 81
- Registriert: 07 Dez 2020, 18:19
- Wohnort: Ulm / Grimmelfingen
- Hat sich bedankt: 10 mal
- Danksagung erhalten: 18 mal
Re: Cronjob bricht nach einiger Zeit ab - liegt wohl an einem Fehler im PHP-Script - brauche Hilfe
.. ja, keine Ahnung was mit der PN passiert ist - die ging nicht raus
Egal, ich habe es hinbekommen. Ein Niederländer hat eine Beschreibung für WU gepostet.
(So ein Mist, alles in mph und inHg umrechnen)
So hier meine Station:
Wetterwerte der Station Ulm/Grimmelfingen
Ich zeichne jetzt die Returnvalues incl. Antwortzeiten auf. Ich melde mich

Egal, ich habe es hinbekommen. Ein Niederländer hat eine Beschreibung für WU gepostet.
(So ein Mist, alles in mph und inHg umrechnen)
So hier meine Station:
Wetterwerte der Station Ulm/Grimmelfingen
Ich zeichne jetzt die Returnvalues incl. Antwortzeiten auf. Ich melde mich
-
- Beiträge: 81
- Registriert: 07 Dez 2020, 18:19
- Wohnort: Ulm / Grimmelfingen
- Hat sich bedankt: 10 mal
- Danksagung erhalten: 18 mal
Re: Cronjob bricht nach einiger Zeit ab - liegt wohl an einem Fehler im PHP-Script - brauche Hilfe
erste Erkenntnisse mit curl_exec:
* Wenn man die updates zu schnell hintereinander ausführt , kommt die Fehlermeldung " too many requests - try again later"
* In meiner php Version (phpinfo() PHP Version => 7.3.31-1~deb10u1) kommt kein "success" oder "ok" zurück. Siehe #19
* Erste Aussetzer um 21:01:02 und 21:02:02 -> Keine Response = "False" hier hat es nicht geklappt.
* Wenn man die updates zu schnell hintereinander ausführt , kommt die Fehlermeldung " too many requests - try again later"
* In meiner php Version (phpinfo() PHP Version => 7.3.31-1~deb10u1) kommt kein "success" oder "ok" zurück. Siehe #19
* Erste Aussetzer um 21:01:02 und 21:02:02 -> Keine Response = "False" hier hat es nicht geklappt.
Code: Alles auswählen
----------------------------------------
18.08.2022 - 21:00:01>> - uv locked - Transfer OK1
Zeit URL 0.644659
----------------------------------------
18.08.2022 - 21:01:02>> ----------------------------------------
18.08.2022 - 21:02:02>> ----------------------------------------
18.08.2022 - 21:03:01>> - uv locked - Transfer OK1
Zeit URL 0.066075
- Wetterfrosch
- Beiträge: 477
- Registriert: 08 Dez 2020, 11:49
- Wohnort: 79410 Badenweiler (350mNN) / Breisgau-Hochschwarzwald
- Hat sich bedankt: 129 mal
- Danksagung erhalten: 37 mal
- Kontaktdaten:
Re: Cronjob bricht nach einiger Zeit ab - liegt wohl an einem Fehler im PHP-Script - brauche Hilfe
Genau, der Feler " too many requests - try again later" kommt bei mir auch und ich denke dass das das Problem ist, weswegen der CJ irgendwann seinen Dienst quitiert, doch ich sende im 1 Minuten-Intervall, welches bei Awekas das kürzest mögliche ist, doch dann dürfte doch dieser Fehler nicht auftreten oder könnte es sein, dass der CJ ab und an auch mal nach 58 Sekunden gestartet wird und dadurch dann die Fehlermeldung kommt?
Wie könnte man das Problem umgehen?
ja, ich könnte einfach im 2 Minuten Intervall senden, das wäre auch eine Möglichkeit, doch es gibt gewisse Gründe für mein 1-Minuten-Intervall.
Aktuell läuft mein CJ bisher ohne Probleme, seit ich eben die Die() Funktion mit eingebaut habe, aber vielleicht gibt es ja auch noch eine andere Lösung, mal sehen was du noch herausfindest.
Bezgl. noch wegen der Umrechnung der Messwerte wegen der verschiedenen Einheiten, dafür gab es hier im Forum schon ein komplett fertiges Script incl. dem Sendescript zu WU und Awekas, gugst du hier:
viewtopic.php?t=110
und hier, dieses Script habe ich verwendet:
https://heiligensee-wetter.de/code_1.php
Wie könnte man das Problem umgehen?
ja, ich könnte einfach im 2 Minuten Intervall senden, das wäre auch eine Möglichkeit, doch es gibt gewisse Gründe für mein 1-Minuten-Intervall.
Aktuell läuft mein CJ bisher ohne Probleme, seit ich eben die Die() Funktion mit eingebaut habe, aber vielleicht gibt es ja auch noch eine andere Lösung, mal sehen was du noch herausfindest.
Bezgl. noch wegen der Umrechnung der Messwerte wegen der verschiedenen Einheiten, dafür gab es hier im Forum schon ein komplett fertiges Script incl. dem Sendescript zu WU und Awekas, gugst du hier:
viewtopic.php?t=110
und hier, dieses Script habe ich verwendet:
https://heiligensee-wetter.de/code_1.php
-
- Beiträge: 81
- Registriert: 07 Dez 2020, 18:19
- Wohnort: Ulm / Grimmelfingen
- Hat sich bedankt: 10 mal
- Danksagung erhalten: 18 mal
Re: Cronjob bricht nach einiger Zeit ab - liegt wohl an einem Fehler im PHP-Script - brauche Hilfe
So, gestern noch festgestellt:
Wenn der Zugriff auf AWEKAS länger als eine Minute dauert, startet der CJ bereits eine 2te Abfrage. Dies ergibt die Fehlermeldung "too many requests".
Ich hab jetzt den Timeout von curl_exec auf 45 sekunden gesetzt:
Man sieht es kommt doch ab und an vor, dass die curl länger unterwegs ist.... Ich beobachte weiter ...
VG
Wenn der Zugriff auf AWEKAS länger als eine Minute dauert, startet der CJ bereits eine 2te Abfrage. Dies ergibt die Fehlermeldung "too many requests".
Ich hab jetzt den Timeout von curl_exec auf 45 sekunden gesetzt:
Code: Alles auswählen
----------------------------------------
19.08.2022 - 05:10:01>> Curl-Fehler: Operation timed out after 45001 milliseconds with 0 bytes received
Zeit URL 45.001386
----------------------------------------
19.08.2022 - 05:11:01>> too many requests - try again later 1
Zeit URL 0.054943
----------------------------------------
19.08.2022 - 05:12:01>> - uv locked - Transfer OK1
Zeit URL 0.071726
----------------------------------------
19.08.2022 - 05:13:01>> Curl-Fehler: Operation timed out after 45000 milliseconds with 0 bytes received
Zeit URL 45.000469
VG
- Wetterfrosch
- Beiträge: 477
- Registriert: 08 Dez 2020, 11:49
- Wohnort: 79410 Badenweiler (350mNN) / Breisgau-Hochschwarzwald
- Hat sich bedankt: 129 mal
- Danksagung erhalten: 37 mal
- Kontaktdaten:
Re: Cronjob bricht nach einiger Zeit ab - liegt wohl an einem Fehler im PHP-Script - brauche Hilfe
Kannst du mal dein komplettes cURL-Sendescript hier einstellen, wie du das nun propgrammiert hast?
ich habe ja bei Awekas aktuell auf fopen() umgestellt und sende aktuell nun so:
kann man an diesen Code, auch irgendwie eine Bedingung einbauen, dass der Sendeversuch nach 45 Sekunden abgebrochen wird? Vielleicht anstatt mit Die() das ganze Script zu beenden?
Denn aktuell bricht das Die() am Ende ja mein komplettes Script ab und da das Script nicht nur für das Senden an Awekas zuständig ist, bricht halt aktuell, wenn Awekas nicht erreichbar ist, auch das restliche Script ab, was ja eigentlich etwas doof ist, denn das restliche Script hat mit Awekas nix zu tun und könnte ja trotzdem weiter abgearbeitet werden oder wird das Script erst ab der Stelle wo das Die() eingebaut ist abgebrochen und alles was davor steht wird noch abgearbeitet?
Mit fopen() bekomme ich übrigens diese Fehlermeldung:
"failed to open stream: HTTP request failed!" und dann wird mit Die() abgebrochen.
Diese Fehlermeldung ist augenscheinlich die, dass der Server von Awekas nicht erreicht wurde, richtig?
Zumindest aber bricht der CJ seit die Die() Funktion eingebaut ist, bisher nicht mehr ab, das ist auf jeden Fall mal ein Fortschritt.
Oder ist es ratsamer, das ganze von fopen() wieder auf cURL umzustellen?
Ich kann ja mal deine Lösung einbauen und schauen was bei mir dann geschieht.
ich habe ja bei Awekas aktuell auf fopen() umgestellt und sende aktuell nun so:
Code: Alles auswählen
$urlAWb = fopen("http://ws.awekas.at/weatherstation/updateweatherstation.php?ID=$ID&PASSWORD=$PASSWORD&action=$action&dateutc=$dateutc&tempf=$tempfb&dewptf=$dewptfb&humidity=$humidityb&winddir=$winddirb&windspeedmph=$windspeedmphb&windgustmph=$boeb&baromin=$barominb", "r") or die('Server-Error');
fclose($urlAWb);
Denn aktuell bricht das Die() am Ende ja mein komplettes Script ab und da das Script nicht nur für das Senden an Awekas zuständig ist, bricht halt aktuell, wenn Awekas nicht erreichbar ist, auch das restliche Script ab, was ja eigentlich etwas doof ist, denn das restliche Script hat mit Awekas nix zu tun und könnte ja trotzdem weiter abgearbeitet werden oder wird das Script erst ab der Stelle wo das Die() eingebaut ist abgebrochen und alles was davor steht wird noch abgearbeitet?
Mit fopen() bekomme ich übrigens diese Fehlermeldung:
"failed to open stream: HTTP request failed!" und dann wird mit Die() abgebrochen.
Diese Fehlermeldung ist augenscheinlich die, dass der Server von Awekas nicht erreicht wurde, richtig?
Zumindest aber bricht der CJ seit die Die() Funktion eingebaut ist, bisher nicht mehr ab, das ist auf jeden Fall mal ein Fortschritt.
Oder ist es ratsamer, das ganze von fopen() wieder auf cURL umzustellen?
Ich kann ja mal deine Lösung einbauen und schauen was bei mir dann geschieht.
-
- Beiträge: 81
- Registriert: 07 Dez 2020, 18:19
- Wohnort: Ulm / Grimmelfingen
- Hat sich bedankt: 10 mal
- Danksagung erhalten: 18 mal
Re: Cronjob bricht nach einiger Zeit ab - liegt wohl an einem Fehler im PHP-Script - brauche Hilfe
So, ich habe mein Skript jetzt tagsüber laufen lassen:
Update jede Minute
Insgesamt wurden 567 Updates bei AWEKAS angestoßen
Davon haben 8 Aktualisierungen nicht funktioniert:
7* timeout nach 50 Sekunden.
1 * AWEKAS Error!!! Can't connect to Database. Please try again later...
Also 98,5%(?) Zuverlässigkeit. Hier die Statistik-Auswertung aus Libreoffice bzgl. Update-Zeiten. Wen es interessiert.
Y-Achse: Zeit in Sekunden ...
Fazit:
Ich denke nicht, dass ein retry innerhalb der Minute etwas bringt - die nächste Aktualisierung steht dann ja schon an. Und man bekommt (wie ich getestet habe) dann wahrscheinlich den Fehler "too many requests - try again later".
Wenn die Aktualisierung nicht klappt, klappt sie eben nicht.... Die Zuverlässigkeit finde ich pers. allerdings nicht berauschend. Aber es ist ein kostenloses Angebot!
Der Code kommt .... (möchte noch ein paar Kommentare einbauen)
Update jede Minute
Insgesamt wurden 567 Updates bei AWEKAS angestoßen
Davon haben 8 Aktualisierungen nicht funktioniert:
7* timeout nach 50 Sekunden.
1 * AWEKAS Error!!! Can't connect to Database. Please try again later...
Also 98,5%(?) Zuverlässigkeit. Hier die Statistik-Auswertung aus Libreoffice bzgl. Update-Zeiten. Wen es interessiert.
Code: Alles auswählen
Sekunden
Mittelwert 0,326366568872988
Standardfehler 0,07939455877986
Modus 0,065008
Median 0,069496
Erstes Quartil 0,066149
Drittes Quartil 0,0756355
Varianz 3,52365424379136
Standardabweichung 1,87713991055312
Wölbung 229,614641925198
Schräge 13,9681242167974
Bereich 34,978372
Minimum 0,060592
Maximum 35,038964
Summe 182,438912
Anzahl 559
Fazit:
Ich denke nicht, dass ein retry innerhalb der Minute etwas bringt - die nächste Aktualisierung steht dann ja schon an. Und man bekommt (wie ich getestet habe) dann wahrscheinlich den Fehler "too many requests - try again later".
Wenn die Aktualisierung nicht klappt, klappt sie eben nicht.... Die Zuverlässigkeit finde ich pers. allerdings nicht berauschend. Aber es ist ein kostenloses Angebot!
Der Code kommt .... (möchte noch ein paar Kommentare einbauen)
Re: Cronjob bricht nach einiger Zeit ab - liegt wohl an einem Fehler im PHP-Script - brauche Hilfe
Ha, ha, ha.....
Ich verweise auf #33 und #36 und fühle mich als "Rufer in der Wüste", hiermit quasi hochwissenschaftlich bestätigt.

Ich verweise auf #33 und #36 und fühle mich als "Rufer in der Wüste", hiermit quasi hochwissenschaftlich bestätigt.



-
- Beiträge: 81
- Registriert: 07 Dez 2020, 18:19
- Wohnort: Ulm / Grimmelfingen
- Hat sich bedankt: 10 mal
- Danksagung erhalten: 18 mal
Re: Cronjob bricht nach einiger Zeit ab - liegt wohl an einem Fehler im PHP-Script - brauche Hilfe
So, ich hab noch ein wenig bei der Fehlerausgabe gebastelt - ohne Wiederholungen o.ä.:
Ich glaube ich hab ein paar Variablennamen geändert @Wetterfrosch: bitte prüfen
@wk893b: Naja "hochwissenschaftlich"
Das läuft nur auf meinem Heimserver, aber da kamen schon einige Ausfälle zusammen.
Edit:
26.08.2022 Update nach 6 Tage:
02.09.2022
09.09.2022
24.09.2022:
so, abschließend nach knapp einem Monat:




Code: Alles auswählen
....
$curlStr = "http://ws.awekas.at/weatherstation/updateweatherstation.php?ID=$IDp&PASSWORD=$PASSWORDp&action=$actionp&dateutc=$dateutcp&tempf=$tempfb&dewptf=$dewptfb&humidity=$humidityb&winddir=$winddirb&windspeedmph=$windspeedmphb&windgustmph=$windgustmphb&baromin=$barominb";
date_default_timezone_set("Europe/Berlin");
$datum = date("d.m.Y");
$uhrzeit = date("H:i:s");
echo $datum," - ",$uhrzeit,": ";
// cURL initialisieren
$ch = curl_init();
// cURL Optionen setzen
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_URL, $curlStr);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 40);
curl_setopt($ch, CURLOPT_TIMEOUT, 50);
// cURL ausführen (Daten an den Browser weiterreichen) - Ergebnis in Variable speichern
$returncode = @curl_exec($ch);
if($returncode === false)
{
echo "Error\nZeit: error\n";
echo 'Curl-Fehler: ' . curl_error($ch);
}
else
{
$info = curl_getinfo($ch);
switch ($info['http_code'])
{
case 200: # OK
echo "Ok -> Access Time:". $info['total_time'] ."\n";
break;
default:
echo 'Error -> Unerwarteter HTTP-Code: ', $info['http_code'], "\n";
echo "$returncode";
}
}
@wk893b: Naja "hochwissenschaftlich"

Edit:
26.08.2022 Update nach 6 Tage:
Code: Alles auswählen
xxx@DMZ2:~# ./calcAwekas.sh
No of requests 9198
No of errors 116
Availabilty 98.73885627310284844600
Code: Alles auswählen
./calcAwekas.sh
No of requests 19374
No of errors 235
Availabilty 98.78703416950552286600
Code: Alles auswählen
./calcAwekas.sh
No of requests 29520
No of errors 444
Availabilty 98.49593495934959349600
so, abschließend nach knapp einem Monat:
Code: Alles auswählen
No of requests 50494
No of errors 1011
Availabilty 97.99778191468293262600