This question already has answers here:
Make sure only a single instance of a program is running
                                
                                    (20个答案)
                                
                        
                                5年前关闭。
            
                    
我有一个系统,其中cron作业每分钟用于驱动manage.py命令。

问题是,该作业有时可能需要一分钟以上的时间,并且两个命令实例一次运行并不安全。

有没有一种好的方法可以使命令检测到自身的另一个实例是否已在运行并提早退出?有没有更好的方法可以达到相同的目的?

最佳答案

您也可以使用django-cronjobs(免责声明:本人未使用过)来注册工作。从文档:

# myapp/cron.py
import cronjobs

@cronjobs.register
def periodic_task():
    pass


然后使用:

$ ./manage.py cron periodic_task


更重要的是:django-cronjob甚至在默认情况下也确保同一时间只运行一份作业。

10-02 00:18
查看更多