繁体   English   中英

如果简单的cron作业未运行/停止/错误,请重新启动python脚本

[英]Restart python script if not running/stopped/error with simple cron job

简介:我有一个使用Twitter API收集推文的python脚本,后端有postgreSQL数据库,该数据库收集所有流式推文。 我有克服了ratelimit问题的自定义代码,并且我使它可以24/7运行几个月。

问题:有时流中断并在给定的秒数内休眠,但这没有帮助。 我不想手动检查。

def on_error(self,status)://tweepy method
    self.mailMeIfError(['me <me@localhost'],'listen.py <root@localhost>','Error Occured on_error method',str(error))
    time.sleep(300)
    return True

假设mailMeIfError是一种向我发送邮件的方法。

我想要一个简单的cron脚本,如果不运行/错误/中断,它将始终检查进程并重新启动python脚本。 我已经从stackoverflow那里得到了一些答案,他们使用了Process ID。 在我的情况下,进程ID仍然存在,因为如果出现错误,此脚本将休眠。

提前致谢。

这一切都可以在您的一个脚本中完成。 需要配置Cron以定期(例如每分钟)启动脚本。 然后,脚本的开始仅需要确定它是否是在计算机上运行的自身的唯一副本。 如果发现另一个副本正在运行,则它会以静默方式终止。 否则它将继续运行。

这种行为称为Singleton模式 有多种方法可以实现此目的,例如Python:单个程序实例

使用进程ID更容易,更安全。 尝试使用看门狗

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM