• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Cronjob wird mehrfach ausgeführt

Degers

Mitglied
Ein Skript zum Versand einer privaten Nachricht im Backend einer Website wird täglich um 23:55 ausgeführt, es versendet verschiedene Statistiken zum Tag.
Obwohl dieses aber seit Wochen unverändert ist und ein Zugriff von außen nicht stattgefunden hat/stattfinden kann wird an manchen Tage, mir unerklärlicherweise, die Nachricht 2mal abgesandt.
Würde nun mit Regelmäßigkeit ein Mehrfacheintrag vorliegen würde ich auf Fehlersuche gehen und im Skript dem Fehler vermuten, der Wechsel zwischen einmaligen und doppelten Aufruf irritiert mich jedoch. Zwischen den Aufrufen, wenn sie denn doppelt sind liegt laut timestamp eine Sekunde.
Das Skript selbst besteht nur aus Datenbankabrufen und dem Eintragen der gesammelten Statistiken in eine Nachrichtentabelle, bei Bedarf kann das Skript nachgereicht werden.
Bevor ich beim Hoster anfrage wollte ich hier um Anregungen/Tipps bitten

Gruß!
 
So ins Blaue geschossen: wie sieht denn der Teil des Scripts aus, mit dem die Zeit ermittelt wird? Kann es sein, daß da der Startzeitpunkt 2x ermittelt wird, vielleicht weil der Tag mal 1-stellig, mal 2-stellig gerechnet wird?
 
PHP:
Verbindung zur Datenbank
$now = time();
$last_day = $now - 86400;
$date = date("d.m.Y",$now);

//Ganz viele Abfragen, externe/interne Aufrufe, 404er, beliebteste Seiten usw usw

// Das Ganze in einem Content darstellen

//Eintrag
$abfrage = "SELECT username FROM user WHERE dailystats = '1'";
$result = mysql_query($abfrage);
while($row = mysql_fetch_object($result)){
$eintrag = "INSERT INTO messages
(title,content, datetime, consigner, addressee)
VALUES
( '$title', '$content', '$datetime', '$consigner', '$row->username')";
$eintragen = mysql_query($eintrag);
}
Eventuell besteht ein Zusammenhang mit der Whileschleife, eine andere Methode fiel mir nicht ein. Wäre in den Zusammenhang auch für Verbesserungsvorschläge offen.
 
Hat vielleicht noch jemand eine Idee woran es liegen könnte? Dass die Datei mehrfach aufgerufen wird (von außen bspw.) ist gänzlich unterbunden.
 
Du könntest mal prüfen, ob die Datei tatsächlich zweimal aufgerufen wird, indem du bei jedem Aufruf einen Eintrag mit Timestamp in eine Textdatei schreibst.
 
Zurück
Oben