time.sleep() 卡死怎么办
请问我写了一个段代码,大概就是隔几分钟访问一次网站。因为不想过于频繁的访问,所以我引入了import time
time.sleep(120)
让代码休息两分钟再继续访问。
但是有的时候,代码 休息过就醒不来了,请问这是什么问题,有什么好的解决方案。
我用命令行执行代码的时候会出现这种情况,一般来说,如果卡住了按一下回车就可以解决。
当然,这不是解决办法,还是建议使用pycharm执行,一般不会有这个问题 什么叫醒不过来,具体是什么症状 import requests
import time
url = 'https://baidu.com'
while True:
req = requests.session()
try:
req.get(url)
print('sleep 120 seconds')
time.sleep(120)
print('wake up')
del req
代码大概就是这样,有时就一觉不醒了,网上说线程的什么原因,我也搞不懂,所以请大佬帮我一下 hrp 发表于 2020-5-8 18:53
什么叫醒不过来,具体是什么症状
就是 没有 ‘wake up’ 的输出了 可以看下楼下代码 walleeee 发表于 2020-5-8 18:57
就是 没有 ‘wake up’ 的输出了 可以看下楼下代码
注释掉5.6.7.11行再运行试试,看看是不是网络请求没返回的原因 hrp 发表于 2020-5-8 19:14
注释掉5.6.7.11行再运行试试,看看是不是网络请求没返回的原因
sleep 120 seconds
是输出了的,我觉得不是网络请求的问题 hrp 发表于 2020-5-8 18:53
什么叫醒不过来,具体是什么症状
……什么症状,
大概是安眠药吃多了吧?{:10_256:} https://stackoverflow.com/questions/2342397/pythons-time-sleep-never-waking-up
就类似这个的问题,但是他没给解决办法 walleeee 发表于 2020-5-8 18:55
代码大概就是这样,有时就一觉不醒了,网上说线程的什么原因,我也搞不懂,所以请大佬帮我一下
这段代码根本不可能存在time.sleep不醒的问题。
问题只会出现在 req.get(url) 访问出错,或超时,导至代码无法继续往下执行。 walleeee 发表于 2020-5-8 19:18
sleep 120 seconds
是输出了的,我觉得不是网络请求的问题
那加个条件让while循环只循环一次,看看行不行(我想到了刚学写界面的时候想用循环和sleep在按钮上间隔循环显示文字,结果程序在循环中是卡死状态,循环结束后只显示了最后一个文字,最后用多线程解决) _2_ 发表于 2020-5-8 19:26
……什么症状,
大概是安眠药吃多了吧?
也可能是因为三天没睡过觉了{:10_247:} 方法很多, pstack, strace, /proc/${pid}/stack 文件, top 命令看进程状态 hrp 发表于 2020-5-8 19:42
那加个条件让while循环只循环一次,看看行不行(我想到了刚学写界面的时候想用循环和sleep在按钮上间隔 ...
能给一下当时你怎么解决那个问题的方法么 walleeee 发表于 2020-5-8 18:55
代码大概就是这样,有时就一觉不醒了,网上说线程的什么原因,我也搞不懂,所以请大佬帮我一下
我从来没听说过这么离谱的事 可能神游了
walleeee 发表于 2020-5-8 20:33
能给一下当时你怎么解决那个问题的方法么
我只是联想到而已,跟这个不是一回事,况且我运行你的代码并没有问题
import time
import requests
url = 'https://baidu.com'
while True:
req = requests.session()
try:
req.get(url)
except:
pass
print('sleep 120 seconds')
time.sleep(120)
print('wake up')
del req
_2_ 发表于 2020-5-8 19:26
……什么症状,
大概是安眠药吃多了吧?
同意{:10_256:} 永恒的蓝色梦想 发表于 2020-5-8 20:57
我从来没听说过这么离谱的事
安眠药吃多了{:10_256:} 第一步,看看有没有呼吸和心跳
第二步,如果有,就要考虑是否是植物人
如果没有,就要立即拨打120并做心肺复苏
祝您的程序可以早日恢复健康{:5_111:}
页:
[1]
2