1

我有这个 Django cron 作业脚本(我为此使用了 kronos,这很棒)。

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

我知道我可以使用锁定文件来做到这一点,但这不是很可靠,并且当您在执行过程中重新启动时可能会导致问题(您必须清除锁定文件)等。

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

编辑:我的目标是 Linux,很抱歉忽略了这个。

4

1 回答 1

0

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

也可以在 pip 上作为cronjobs.

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

# myapp/cron.py
import cronjobs

@cronjobs.register
def periodic_task():
    pass

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

$ ./manage.py cron periodic_task

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

@register(lock=False)
于 2013-04-19T06:22:12.117 回答