Wie führt man alle 500 Millisekunden PHP-Code in Linux aus?

Wie führt man alle 500 Millisekunden PHP-Code in Linux aus?

Ich habe einen HTTP-Server unter Linux.
Ich habe PHP-Code, der Variablen im Cache speichert, indem ichMemcacheund ich möchte diesen Code alle 500 Millisekunden ausführen, wenn der Server läuft, auch nach einem Serverneustart.
Ich dachte daran, einen Dienst zu implementieren, aber ich habe nicht viel Erfahrung mit Linux, also weiß ich nicht, wie das geht oder ob das überhaupt der richtige Ansatz ist.
Ich habe auch von Cron-Jobs gehört, aber ich sehe, dass sie im Minuten- und nicht im Sekundentakt ausgeführt werden.
Wie kann ich PHP-Code in Linux alle 500 Millisekunden ausführen (Code wäre hilfreich)?

Antwort1

Sie können hierfür ein einfaches Shell-Skript verwenden:

#!/bin/bash
while true; do
    php /path/to/your/script.php & sleep 0.5s;
done

Das '&' wird den Prozess im Hintergrund aufteilen, sodass die Zeitangaben einigermaßen genau sein sollten. Ich vermute, dass es nach einiger Zeit nicht mehr mit einer echten Uhr synchronisiert ist, sodass Sie entweder Zeitstempel zu allem hinzufügen möchten, was Ihr Skript macht, oder einen Ansatz mit einem Daemon verwenden möchten, der die Systemzeit verwendet.

(Danke für die Beiträge in den Kommentaren)

Ich empfehle, das Skript mit systemctl hinzuzufügen. Dieses Tutorial sieht dafür gut aus: Erstellen meiner eigenen systemd-Servicedateien

Antwort2

Da Sie mit PHP vertraut sind, können Sie einen PHP-Daemon/-Dienst erstellen. Ich habe einmal einen PHP-Dienst für mich selbst erstellt, weil ich eine Bibliothek verwenden musste, die nur in PHP verfügbar war. Er läuft nun schon seit vielen Jahren ohne Probleme.

Hier einige Informationen zu PHP-Daemons:

verwandte Informationen