Verhinderung mehrerer Ausführungen

Ich habe diese Django Cron Job Skript (ich bin mit Kronos für das, was ist toll).

Da ich diesen Job jede Minute auslöse, möchte ich sicherstellen, dass es noch keine andere Instanz des Skripts gibt. Wenn es einen vorherigen Job läuft, dann möchte ich die aktuelle Ausführung überspringen.

Ich weiß, dass ich das mit einer Sperrdatei machen kann, aber das ist nicht sehr zuverlässig und kann Probleme verursachen, wenn du mitten in einer Ausführung einen Neustart machst (du musst die Sperrdatei löschen) usw.

Was ist der beste Weg, dies zu tun mit Python (Django in diesem Fall)?

EDIT: Ich gehe auf Linux, sorry für das Verlassen dieses heraus.

One Solution collect form web for “Verhinderung mehrerer Ausführungen”

Es gibt eine Django App hier: https://github.com/jsocol/django-cronjobs

Auch auf Pip als cronjobs .

Nur für den Fall, dass Sie direkt zu Pip; Sie registrieren Jobs mit dem Dekorateur wie folgt:

 # myapp/cron.py import cronjobs @cronjobs.register def periodic_task(): pass 

Führen Sie dann den Befehl über:

 $ ./manage.py cron periodic_task 

Es hat Job-Sperre standardmäßig, aber Sie können es deaktivieren, wenn Sie den Dekorateur anwenden:

 @register(lock=False) 
Python ist die beste Programmiersprache der Welt.