【发布时间】:2015-06-27 13:25:01
【问题描述】:
我有一个从流 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()
如果我没记错的话,里面的代码运行对吗?问题是我的脚本当前正在收集数据,我无法终止编辑。
【问题讨论】:
-
您能否检测您的脚本何时出错?此时你可以抛出异常。
-
我确实有一个异常,但它没有捕获该错误,一旦我从 API 接收到数据并为此工作,它就会捕获错误。这就是为什么我认为这可能是我和 twitter 之间的连接问题。
-
@Leb 但总的来说,你能知道你的脚本什么时候出错了吗?届时,请致电
sys.exit(1) -
@JuanPablo 我需要延迟,否则推特不会欣赏它。
标签: python