我们在django应用中有一个自定义命令,该命令执行与外部服务的数据同步。
该命令每小时启动一次。
通常,命令在半小时或更短的时间内完成,但是最近,我们遇到了这种情况,该过程花费了几个小时。同时,该命令在后台再次启动了几次,导致对模型的访问不一致(因为我们的代码不是针对这种情况而设计的。)
如果django已经在运行,是否可以阻止该命令运行?
我想解决此问题的一种方法是将文件用作命令的互斥体。
但这对我来说似乎不是很优雅,因为如果命令被中断并且可能无法正确清理文件,这可能会引起任何额外的麻烦。
解决此问题的最佳方法是什么?有pythonic / django式的方法可以做到这一点吗?