ich nutze ein PHP Script welches über ein Event gestartet wird.
Um mehrfaches gleichzeitiges Starten des Scripts zu verhindern deaktiviere ich eben jenes Event bei Scriptstart.
Wenn das Script seine Arbeit getan hat aktiviert es das Event nun auch wieder.
Das Script holt nun Bilder von einer Webcam und Speichert diese ab.
Leider kommt es gelegentlich dazu das die Kamera nicht erreicht wird, dann
schmeisst file_get_contents einen Error, das Script wird abgebrochen und als Fehlerhaft markiert.
Natürlich wird das Event dann auch nicht mehr aktiviert.
Gibt es eine Möglichkeit das Problem zu erkennen und dass Event wieder zu aktivieren? Das Script würde ja beim nächsten Aufruf wieder einwandfrei arbeiten.
Ja aber so wie ich das mit den Semaphoren verstehe müssen die auch wieder gelöscht werden, was passiert also wenn das Script vorher beendet wird und die Semaphore bestehen bleibt?
Da habe ich doch dann genau das gleiche Problem oder?
Im Prinzip ja, aber dein Script läuft und du kannst prüfen, wie lange der Semaphore gesetzt ist.
Falls das „ziemlich lange“ ist, dann löscht du ihn weg und führst deinen Code aus. Dann ist es nämlich sehr wahrscheinlich, das das Script vorher verstorben war und den Semaphore nicht gelöscht hat.
Wenn du deinen Timer ausschalten, dann läuft halt nix zum prüfen mehr ;).
bevor ich meine WebCamBilder per Skript abhole, pinge ich die Kamera kurz an.
Wenn ich sie nicht erreiche, verlasse ich das Skript erstmal wieder (mit entsprechendem Hinweis im WF).