1

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

该命令每小时启动一次。

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

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

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

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

解决这个问题的最佳方法是什么?有没有 pythonic / django-ish 的方式来做到这一点?

4

0 回答 0