Guten Abend!
Das folgende Script wird jede Minute per Cronjob aufgerufen. Die Schleife soll einen sekündlichen Cronjob ersetzen und eine Aktion ausführen, welche in dieser Sekunde (abzüglich 1 Sekunde) geplant ist. Das Script soll also die Aktion bereits 1 Sekunde zuvor ausführen.
Mein Script funktioniert soweit schon ganz gut, nur wenn z.B. in der ersten Sekunde und in der zweiten Sekunde etwas ansteht, verspätet sich die Schleife jeweils um eine Sekunde bei der nächsten Aktion. Grund hierfür ist, dass eine geplante Aktion bis zu 1.5 Sekunden dauern kann.
Deshalb nun meine Frage, wie man das Script soweit optimieren kann, sodass soetwas wie ein Puffer bis zu 2 Sekunden zwischen beiden Aktionen entsteht.
Leider komme ich bei der Logik der Schleife nicht weiter... Ich wäre für Lösungsvorschläge sehr dankbar!
Das folgende Script wird jede Minute per Cronjob aufgerufen. Die Schleife soll einen sekündlichen Cronjob ersetzen und eine Aktion ausführen, welche in dieser Sekunde (abzüglich 1 Sekunde) geplant ist. Das Script soll also die Aktion bereits 1 Sekunde zuvor ausführen.
Mein Script funktioniert soweit schon ganz gut, nur wenn z.B. in der ersten Sekunde und in der zweiten Sekunde etwas ansteht, verspätet sich die Schleife jeweils um eine Sekunde bei der nächsten Aktion. Grund hierfür ist, dass eine geplante Aktion bis zu 1.5 Sekunden dauern kann.
Deshalb nun meine Frage, wie man das Script soweit optimieren kann, sodass soetwas wie ein Puffer bis zu 2 Sekunden zwischen beiden Aktionen entsteht.
Leider komme ich bei der Logik der Schleife nicht weiter... Ich wäre für Lösungsvorschläge sehr dankbar!
PHP:
$time = time () - 1;
for ($i = "0"; $i < "60"; $i ++) {
$parsetime = microtime ();
$time = $time + $i;
$result = mysql_query ( "SELECT * FROM `table` WHERE `time` = '" . $time . "'" );
// Aktion ausführen, welche bis zu 1,5 Sekunden dauern kann
usleep ( 1000000 - ( microtime () - $parsetime ) );
}