我需要使用upstart
在Ubuntu机器上运行夜间作业(Python进程)。该服务必须每24小时开始运行一段时间,比如24.5小时。这种重叠的原因是进程从外部队列读取,处理数据并将其推送到数据库,因此在启动下一个服务会话之前停止一个服务会话将导致数据丢失。
如果进程在24.5小时之前的任何时间崩溃,则必须重新启动,但在24.5小时之后它必须停止。
在.conf
文件或start
命令中指定此终止条件的正确方法是什么?
答案 0 :(得分:0)
1)你基本上想要实现的是,当进程n + 1开始时,进程n首先关闭。
为什么不尝试确保进程n刚刚完成,当进程n + 1已经用任何标志启动时,如带有某个时间戳的文件?
2)如果失败,则需要重新启动并持续剩余的时间直到24.5。此外,我建议将完成时间写入磁盘,并在发生故障时从那里检索它。