如何防止Django运行命令的多个实例?

时间:2019-03-02 20:13:50

标签: python django django-commands

我们在django应用中有一个自定义命令,该命令执行与外部服务的数据同步。

该命令每小时启动一次。

通常,命令在半小时或更短的时间内完成,但是最近,我们遇到了这种情况,该过程花费了几个小时。同时,该命令在后台再次启动了几次,导致对模型的访问不一致(因为我们的代码不是针对这种情况而设计的。)

如果django已经在运行,是否可以阻止该命令运行?

我想解决此问题的一种方法是将文件用作命令的互斥体。

但这对我来说似乎不是很优雅,因为如果命令被中断并且可能无法正确清理文件,这可能会引起任何额外的麻烦。

解决此问题的最佳方法是什么?有pythonic / django式的方法可以做到这一点吗?

0 个答案:

没有答案