我有一个从流API中收集数据的脚本。我随机收到一个错误,我认为无论出于什么原因,它都是来自twitter的结尾。它不是在特定的时间发生的,我早在运行脚本后的10分钟就已经看过了,有时在2小时后就看到了它。
我的问题是如何创建另一个脚本(在运行的脚本之外),如果它因错误而终止,可以捕获,然后在延迟后重新启动。
我做了一些搜索,大多数都与在linux上使用bash有关,我在Windows上。其他建议是使用Windows任务计划程序,但只能在已知时间设置。
我遇到了以下代码:
import os, sys, time
def main():
print "AutoRes is starting"
executable = sys.executable
args = sys.argv[:]
args.insert(0, sys.executable)
time.sleep(1)
print "Respawning"
os.execvp(executable, args)
if __name__ == "__main__":
main()
如果我没弄错,那么代码内部运行正确吗?问题是我的脚本目前正在收集数据,我无法终止编辑。
答案 0 :(得分:2)
这个怎么样?
from os import system
from time import sleep
while True: #manually terminate when you want to stop streaming
system('python streamer.py')
sleep(300) #sleep for 5 minutes
同时,当streamer.py
出现问题时,通过调用sys.exit(1)
确保此内容与streamer.py
位于同一目录中。