Problem bei Senden zu Awekas im Minutentakt

  • Hi,


    ich rufe über eine API eine befreundete Wetter-Bergstation ab, verarbeite dann die Messwerte auf meinen Server und sende sie dann per 1-Minuten-Cronjob gesteuert über ein PHP Script über diesen Link zu Awekas:


    Code
    http://ws.awekas.at/weatherstation/updateweatherstation.php?ID=$IDaw&PASSWORD=$PASSWORDaw&action=$action&dateutc=$dateutc&tempf=$tempf&dewptf=$dewptf&humidity=$humidity&winddir=$winddir&windspeedmph=$windspeedmph&windgustmph=$boe&UV=$UV&baromin=$baromin&rainin=$rainin&dailyrainin=$dailyrainin1


    Das gleiche mache ich im gleichen Script zu Wunderground. Nun stoppt alle paar

    Tage der Cronjob und wenn ich in die Log-Datei des CJ schaue steht da alle paar Minuten : "too many requests - try again later"


    Ich habe in meinen Script nun mal gesucht, welche Stelle diese Fehlermeldung verursacht und es ist die Stelle mit dem Senden der Daten zu Awekas, entferne ich diese Stelle und lasse das Script nur mit dem Senden zu WU laufen, kommt diese Fehlermeldung nicht mehr.


    Wieso hat der Awekas-Server ein Problem mit meiner minütlichen Sendung?

    Ich habe noch eine Bresser 6 in 1, die direkt mit Awekas verbunden ist und im 16 Sekunden Takt sendet, da gibts auch keine Probleme.


    Gibt es eventuell einen zweiten Server bei Awekas, der eher für die kürzeren Sendeintervalle ausgelegt ist, bei WU gibt es dafür ja z.B. den "rapid-Server" der dann eine andere URL hat, falls ja, wie lautet der Link zu diesem Server, den ich dann in meiner Sende-URL erstetzen müsste?


    Vielen Dank für die Hilfe.

    • Offizieller Beitrag

    Sendeintervall wird bei uns folgendermaßen gehandhabt.



    Das kann aber nichts mit dem Chroncob zu tun haben. Ob wir die Daten verarbeiten oder nicht muss deinem Script ja egal sein. Ausgenommen du fragst die Rückgabewerte ab.

    Wenn Stationen ofter als der erlaubte Sendeintervall an un senden werden die Daten einfach nicht verarbeitet. Das ist auch bei anderen Stationen (wie von Dir beschrieben Bresser Stationen) so. Der Station ist das egal was da zurückkommt. Deinem Script scheinbar nicht. Wenn dein Cronjob stoppt hast Du eine andere "Baustelle" :winking_face:

  • was gibt denn der Server als Rückgabewert aus, wenn das Intervall zu kurz ist?

    too many requests - try again later?


    Ich sende im Minutentakt, somit sollte von dieser Seite ja kein Problem auftauchen.


    Ich habe das Sendescript von zuvor "PushTo"-Funktion mit Abfrage des Rückgabewertes jetzt mal auf einfach "fopen()" ohne Rückgabewertabfrage umgestellt, aktuell scheint es zu laufen, vielleicht stimmte in meinem Script mit der PushTo Funktion irgendwas nicht.


    habe gerade in den CJ-Log-dateien gesehen, dass ungefähr 1x Pro Stunde ich beim senden über "fopen()" zu Awekas folgende Fehlermeldung bekomme:

    Zitat

    failed to open stream: HTTP request failed!


    Was bedeutet das und könnte das irgendwann zum Abruch des CJ führen wenn das zu oft auftritt?

  • othi


    Könnte auch daran liegen:


    Was verursacht den HTTP 429 Too Many Requests Fehler?

    In einigen Fällen, wenn Dein Server feststellt, dass ein Benutzeragent versucht, in kurzer Zeit zu oft auf eine bestimmte Seite zuzugreifen, löst er eine ratenbegrenzende Funktion aus. Das häufigste Beispiel dafür ist, wenn ein Benutzer (oder ein Angreifer) wiederholt versucht, sich bei deiner Webseite anzumelden.


    Stichwort DDos Attraktive


    Was sagt der Server Log?

  • Hallo,


    also der CJ bricht immer nach ein paar Tagen ab, die einzige Fehlermeldung die ich aktuell in der CJ-Log-Datei stehen habe ist 2-3x pro Stunde diese Meldung:

    Zitat

    Warning: fopen(http://ws.awekas.at/weathersta…baromin=29.736769057223): failed to open stream: HTTP request failed!


    Ich sende ja kein zu hohes Intervall an Awekas, deswegen verstehe ich nicht, wieso Awekas augenscheinlich den Aufruf der Sende-URL immer wieder mal blockiert?


    Wie kann ich dieses Problem umgehen, ich kann ja nicht alle 3 Tage den CJ neu starten?

    Vielleicht kann mir othi diesbezüglich helfen?


    Mein Script sendet zu Awekas aktuell mit folgendem Code:


    Code
    $ID = 'xxx';
    $PASSWORD = 'yyy';
    
    
    $url = 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");
    fclose($url);


    Was müsste ich da noch mit einbauen, dass der oben genannte Fehler nicht immer wieder zum CJ-Abbruch führt?


    Gerade in der CJ-Log Datei noch gesehen, wenn obig genannter Fehler auftritt, dann hat das auch Auswirkung auf die Folgezeile, d.h. auf das fclose im Script, gugst du:


    Zitat

    Warning: fclose() expects parameter 1 to be resource

  • Hi othi ,


    mein Script sendete zuvor über cURL und da gab es die Probleme mit meinem Cronjob auch, regelmässig nach ca. 3 Tagen brach er das Script ab, die einzige Fehlermeldung die ich in der CJ-Log-Datei fand, ist eben diese hier beschriebene, deswegen hatte bich es jetzt versuchsweiße mal über fopen() versucht, doch auch da blieb das Problem bestehen..

    Eventuell muss ich in das Script noch was einbauen, dass wenn die Datenübertragung zu Awekas fehlschlägt bzw. die URL nicht erreichbar ist, das Script dann abgebrochen wird?

    Was mir halt nicht ganz verständlich ist, weswegen ca. 3x pro Stunde (bei minütlicher Sendung), die obige genannte Fehlermeldung kommt, d.h. von 60 Sendungen klappen 57 und 3 werden "abgeblockt" und das führt dann augenscheinlich regelmässig nach ein paar Tagen zum Abbruch des CJ und ich muss dann diesen wieder manuell neu starten.

  • othi

    So, wir kommen dem Problem langsam auf die Sprünge:


    Es kommt vor, dass der Zugriff auf Awekas länger als 1 Minute dauert, dann wird aber per 1 Minuten Cronjob das Script schon wieder erneut ausgelöst obwohl der Zugriff auf Awekas noch nicht abgearbeitet ist und somit kommt es dann zur Fehlermeldung.

    Wenn dies zu oft passiert, dann bricht augenscheinlich mein Cronjob die Ausführung des Scriptes dauerhaft ab.


    Liegt das Problem, dass der Zugriff auf Awekas teilweise über 1 Minute dauert nun sendeseitig an mir oder empfangsseitig am Awekas-Server?