django_cron似乎没有锁定任务



我正在使用 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 分钟运行一次。 我错过了什么吗?

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

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

相关内容

  • 没有找到相关文章

最新更新