【发布时间】:2014-05-05 16:30:41
【问题描述】:
我有一个从各种内部网络资源中提取的 python 脚本。根据我们系统的设置方式,我们将从网络位置启动 urllib 拉取,它将永远挂起,等待网络某些部分的响应。我希望我的脚本检查它是否还没有完成拉入让我们说 5 分钟它将通过该函数并尝试从下一个地址拉出,并将其记录到错误的目录存储库中(这样我们就可以检查哪些系统挂断电话,我们正在检查超过 20,000 个 IP 地址,其中一些运行着一些旧脚本,这些脚本不再工作,但仍会在请求时尝试运行,并且它们永远不会停止尝试运行)
我熟悉让脚本在某个点暂停
import time
time.sleep(300)
我从伪代码的角度思考什么(不是正确的 python 只是说明这个想法)
import time
import urllib2
url_dict = ['http://1', 'http://2', 'http://3', ...]
fail_log_path = 'C:/Temp/fail_log.txt'
for addresses in url_dict:
clock_value = time.start()
while clock_value <= 300:
print str(clock_value)
res = urllib2.retrieve(url)
if res != []:
pass
else:
fail_log = open(fail_log_path, 'a')
fail_log.write("Failed to pull from site location: " + str(url) + "\n")
faile_log.close
更新:处理 url timeout for urllib2.urlopen() in pre Python 2.6 versions 的特定选项
发现这个答案更符合我的问题的整体问题: kill a function after a certain time in windows
【问题讨论】: