django_cron似乎没有锁定任务

6vl6ewon  于 2023-06-07  发布在  Go
关注(0)|答案(1)|浏览(146)

我使用的是django 1.10和django_cron包(0.5.0)。
该包默认情况下会在任务运行时锁定任务,因此它不会在其他服务器上运行。看起来像在我们的项目(托管在3台服务器上)-它每小时运行3次(这是时间表),我没有改变任何配置,因为我知道它应该锁定默认任务。
这就是任务:

class CreateMissingItems(CronJobBase):
    RUN_EVERY_MINS = 60

    schedule = Schedule(run_every_mins=RUN_EVERY_MINS)
    code = 'CreateMissingItems'  # a unique id

    def do(self):
        MyLog().info(message="Starting scheduled task of creating missing items")
        call_command('create_missing_items')

crontab任务基本上每20分钟运行一次。我错过什么了吗?

5jdjgkvh

5jdjgkvh1#

您需要实现共享锁。该软件包提供了一个数据库共享锁,您可以通过在www.example.com中添加以下行来配置该settings.py:

DJANGO_CRON_LOCK_BACKEND = 'django_cron.backends.lock.database.DatabaseLock'

相关问题