防止多次执行

时间:2013-03-22 01:25:13

标签: python django locking cron-task

我有这个Django cron作业脚本(我正在使用kronos,这很棒)。

由于我每分钟都会触发此作业,因此我想确保没有其他脚本实例已经运行。如果以前的作业正在运行,那么我想跳过当前的执行。

我知道我可以使用锁定文件来执行此操作,但这不是非常可靠,并且在执行过程中重新启动时会导致问题(您必须清除锁定文件)等。

使用Python(在本例中为Django)的最佳方法是什么?

编辑:我的目标是Linux,很抱歉将其删除。

1 个答案:

答案 0 :(得分:0)

这里有一个Django应用程序:https://github.com/jsocol/django-cronjobs

也可以点cronjobs获得。

以防你直接去点;您可以使用装饰器注册作业,如下所示:

# myapp/cron.py
import cronjobs

@cronjobs.register
def periodic_task():
    pass

然后通过以下命令运行命令:

$ ./manage.py cron periodic_task

默认情况下它具有作业锁定功能,但您可以在应用装饰器时禁用它:

@register(lock=False)