gpt4 book ai didi

python - 防止管理命令一次运行多个

转载 作者:太空宇宙 更新时间:2023-11-04 01:37:12 24 4
gpt4 key购买 nike

我正在设计一个长时间运行的进程,由 Django 管理命令触发,需要相当频繁地运行。这个过程应该通过 cron 作业每 5 分钟运行一次,但我想阻止它在第一个需要超过 5 分钟的极少数情况下运行该过程的第二个实例。

我考虑过创建一个 touch 文件,该文件在管理进程启动时创建,并在进程结束时删除。然后,第二个管理命令进程将检查以确保 touch 文件在运行前不存在。但是,如果一个进程在没有正确删除 touch 文件的情况下突然终止,这似乎是一个问题。似乎必须有更好的方法来进行该检查。

有谁知道有什么好的工具或模式可以帮助解决此类问题?

最佳答案

出于这个原因,我更喜欢有一个长时间运行的进程,它从一个共享队列中获取它的工作。长期运行是指它的生命周期比单个工作单元长。然后该进程由一些守护进程服务控制,例如 supervisord它可以在进程崩溃时接管重新启动进程的控制权。这会将工作适本地委托(delegate)给知道如何管理流程生命周期的人员,让您不必担心脚本范围内 posix 流程的细节问题。

如果您有一个队列,您还可以启动多个进程,每个进程都可以从队列中取出作业并处理它们,但这听起来超出了您的问题范围。

关于python - 防止管理命令一次运行多个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8718642/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com