我有一个python文件,foo.py。它使用gspread,处理它和重新上载来下载一些谷歌表数据。我的数据集通常需要15-25秒。有时,大约20%,它会无限期地运行,或者至少只要我有耐心等待。
我希望尽可能经常按计划运行它。但是我发现在第一次冻结之后,使用手表之类的东西并没有继续运行。
思想?
答案 0 :(得分:2)
您需要一个监视器(AKA 监视程序)父进程,它会生成您实际感兴趣的子进程,等待几分钟,然后如果孩子还没有被终止(那么它可能只是退出并等待下一次重新安排,或者尝试几次再次安排子进程)。
使用您喜欢的日程安排机制安排父级(监控/看门狗)进程,您将全部设置完毕。
这是一种声音架构,几乎独立于子(实际目标)和父(监视器)进程中涉及的编程语言。有关监视器父进程的Python实现的提示,请参阅例如Using module 'subprocess' with timeout ...