鱼C论坛

 找回密码
 立即注册
查看: 7360|回复: 37

[已解决]time.sleep() 卡死怎么办

[复制链接]
发表于 2020-5-8 18:48:34 | 显示全部楼层 |阅读模式
50鱼币
请问我写了一个段代码,大概就是隔几分钟访问一次网站。
因为不想过于频繁的访问,所以我引入了
import time 
time.sleep(120)
让代码休息两分钟再继续访问。
但是有的时候,代码 休息过就醒不来了,请问这是什么问题,有什么好的解决方案。

最佳答案
2020-5-8 18:48:35
我用命令行执行代码的时候会出现这种情况,一般来说,如果卡住了按一下回车就可以解决。
当然,这不是解决办法,还是建议使用pycharm执行,一般不会有这个问题

最佳答案

查看完整内容

我用命令行执行代码的时候会出现这种情况,一般来说,如果卡住了按一下回车就可以解决。 当然,这不是解决办法,还是建议使用pycharm执行,一般不会有这个问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-8 18:48:35 | 显示全部楼层    本楼为最佳答案   
我用命令行执行代码的时候会出现这种情况,一般来说,如果卡住了按一下回车就可以解决。
当然,这不是解决办法,还是建议使用pycharm执行,一般不会有这个问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-8 18:53:39 From FishC Mobile | 显示全部楼层
什么叫醒不过来,具体是什么症状
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-5-8 18:55:29 | 显示全部楼层
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
代码大概就是这样,有时就一觉不醒了,网上说线程的什么原因,我也搞不懂,所以请大佬帮我一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-5-8 18:57:27 | 显示全部楼层
hrp 发表于 2020-5-8 18:53
什么叫醒不过来,具体是什么症状

就是 没有 ‘wake up’ 的输出了 可以看下楼下代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-8 19:14:18 From FishC Mobile | 显示全部楼层
walleeee 发表于 2020-5-8 18:57
就是 没有 ‘wake up’ 的输出了 可以看下楼下代码

注释掉5.6.7.11行再运行试试,看看是不是网络请求没返回的原因
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-5-8 19:18:24 | 显示全部楼层
hrp 发表于 2020-5-8 19:14
注释掉5.6.7.11行再运行试试,看看是不是网络请求没返回的原因

sleep 120 seconds
是输出了的,我觉得不是网络请求的问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-8 19:26:46 From FishC Mobile | 显示全部楼层
hrp 发表于 2020-5-8 18:53
什么叫醒不过来,具体是什么症状

……什么症状,
大概是安眠药吃多了吧?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-5-8 19:31:14 | 显示全部楼层
https://stackoverflow.com/questi ... eep-never-waking-up
就类似这个的问题,但是他没给解决办法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-8 19:40:34 | 显示全部楼层
walleeee 发表于 2020-5-8 18:55
代码大概就是这样,有时就一觉不醒了,网上说线程的什么原因,我也搞不懂,所以请大佬帮我一下

这段代码根本不可能存在time.sleep不醒的问题。
问题只会出现在 req.get(url) 访问出错,或超时,导至代码无法继续往下执行。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-8 19:42:24 From FishC Mobile | 显示全部楼层
walleeee 发表于 2020-5-8 19:18
sleep 120 seconds
是输出了的,我觉得不是网络请求的问题


那加个条件让while循环只循环一次,看看行不行(我想到了刚学写界面的时候想用循环和sleep在按钮上间隔循环显示文字,结果程序在循环中是卡死状态,循环结束后只显示了最后一个文字,最后用多线程解决)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-8 19:44:05 From FishC Mobile | 显示全部楼层
_2_ 发表于 2020-5-8 19:26
……什么症状,
大概是安眠药吃多了吧?

也可能是因为三天没睡过觉了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-8 20:16:58 | 显示全部楼层
方法很多, pstack, strace, /proc/${pid}/stack 文件, top 命令看进程状态
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-5-8 20:33:48 | 显示全部楼层
hrp 发表于 2020-5-8 19:42
那加个条件让while循环只循环一次,看看行不行(我想到了刚学写界面的时候想用循环和sleep在按钮上间隔 ...

能给一下当时你怎么解决那个问题的方法么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-8 20:57:31 | 显示全部楼层
walleeee 发表于 2020-5-8 18:55
代码大概就是这样,有时就一觉不醒了,网上说线程的什么原因,我也搞不懂,所以请大佬帮我一下

我从来没听说过这么离谱的事
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-8 21:51:19 | 显示全部楼层
可能神游了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-8 22:01:43 | 显示全部楼层
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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-9 08:09:28 | 显示全部楼层
_2_ 发表于 2020-5-8 19:26
……什么症状,
大概是安眠药吃多了吧?

同意
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-9 08:53:14 From FishC Mobile | 显示全部楼层
永恒的蓝色梦想 发表于 2020-5-8 20:57
我从来没听说过这么离谱的事

安眠药吃多了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-9 18:47:35 | 显示全部楼层
第一步,看看有没有呼吸和心跳
第二步,如果有,就要考虑是否是植物人
                如果没有,就要立即拨打120并做心肺复苏
祝您的程序可以早日恢复健康
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-27 07:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表