Das sieht wie ein Anwendungsfall für cron
, ein einfaches Programm auf all Linux-Maschinen gefunden periodische Aufgaben zu planen. Eine einfache cron Aufgabe könnte so erstellt werden:
$ crontab -e
Im cron, einen Eintrag
0 */2 * * * /home/username/ticket_script.py
Stellen Sie sicher, dass Ihr Skript ausführbare Berechtigungen. Für den Fall, drucken Sie etwas in Ihrem Skript, machen den cron-Eintrag seine ouput wie
auf läuft dies in Docker
0 */2 * * * /home/username/ticket_script.py >> /home/username/ticket_script_runs.log
Für gotchas zu umleiten, können Sie diesen Thread durchlaufen ->https://forums.docker.com/t/cronjobs-in-docker-container/2618/5 die sagt:
Die meisten Docker-Container führen nur die von Ihnen angegebene Binärdatei aus (in diesem Fall/bin/bash), daher wird kein Cron-Daemon ausgeführt, um diese Jobs auszulösen.
Es gibt eine Reihe von Möglichkeiten, wie Sie damit umgehen können - für kleine adhoc Dinge, können Sie den cron-Eintrag zu Ihrem Host-crontab hinzufügen und den Auftrag im Container mit Docker exec Container auslösen ...
Sie können den Container-Einstiegspunkt durch ein Shell-Skript ersetzen, das den Cron startet, oder wenn Sie mehrere Dienste benötigen, verwenden Sie etwas wie supervisord, um sie zu verwalten.
Und wenn Sie all-in gehen, können Sie einen Cron-Container erstellen, den Sie dann verwenden können, um Aufgaben mit docker exec zu starten.
Der andere Ansatz ist, was Sie bereits haben - für 2 Stunden schlafen gehen, oder einen time_last_read
Zeitstempel halten, halten, wenn seine seit 2 Stunden seit dem letzten Lese (time_now - time_last_read >= 2_HOURS
) Auswertung und wieder lesen der Wert in den Speicher, sobald die Bedingung True ist und time_last_read
zurücksetzen.
Mögliche Duplikate von [Wie bekomme ich einen Cron-ähnlichen Scheduler in Python?] (Https://stackoverflow.com/questions/373335/how-do-i-get-a-cron-like-scheduler-in-in- python) – YSelf