吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1692|回复: 17
收起左侧

[求助] python的定时程序为什么有时自己就停止了

[复制链接]
云烟成雨 发表于 2022-1-20 17:18
我用timer = threading.Timer(时间, 函数).start 写了定时器,
函数里面是一些网络请求和一些简单的操作,实现的功能就是定时自动请求接口,


可是挂了两天发现,经常不定期会出现卡住不运行的状况,
比如我定时了5秒请求一次,但有时就卡住不动了,这是为什么?


是因为这个函数本身有bug?还是说request请求在python里面是同步的,请求有问题阻塞了代码的执行?应该不会啊,就算请求超时我也看到过失败的提示,我是在dos窗口下用python命令运行的python xxx.py


求解决方法!感谢!

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

cmy2019 发表于 2022-1-20 17:39
本帖最后由 cmy2019 于 2022-1-20 17:42 编辑

网络相关的操作容错性低,你五秒请求一次肯定不会那么稳定,我猜测关键问题还是在网络请求的代码上,如果是这样的话,还是需要对网络相关的代码多做一些判断和处理,增强程序的稳定性。你可以做个排除法实验,把五秒一次请求换成五分钟一次请求,看看什么情况。
此外,个人更推荐用aspschedule(应该是这么拼,一搜就能搜到)这个三方库来实现定时程序,我用这个库写过每十分钟请求网络数据的程序,连续半月都没问题。
kk159 发表于 2022-1-20 18:35
whofly 发表于 2022-1-20 20:06
 楼主| 云烟成雨 发表于 2022-1-21 09:23
ChengYaoJin188 发表于 2022-1-20 18:25
request 参数需要自己带上timeout,默认虽然有,但是自己加了好像有那么点区别,具体的记不清了。
然后dos ...

把快速编辑模式和插入模式的”√“去掉
这个有什么影响呢?
 楼主| 云烟成雨 发表于 2022-1-21 09:23
cmy2019 发表于 2022-1-20 17:39
网络相关的操作容错性低,你五秒请求一次肯定不会那么稳定,我猜测关键问题还是在网络请求的代码上,如果是 ...

我就是5分钟的,我加了try错误捕获,感觉时间间隔不稳定
白水饮 发表于 2022-1-21 09:25
我也用的aspscheduler写的定时签到,连续运行很久都没问题
 楼主| 云烟成雨 发表于 2022-1-21 09:34
cry980285208 发表于 2022-1-21 09:25
我也用的aspscheduler写的定时签到,连续运行很久都没问题

有没有代码示例给一份?
白水饮 发表于 2022-1-21 09:43
云烟成雨 发表于 2022-1-21 09:34
有没有代码示例给一份?

[Python] 纯文本查看 复制代码
from apscheduler.schedulers.blocking import BlockingScheduler


def main(a, b):
    print(a, b)


if __name__ == '__main__':
    scheduler = BlockingScheduler()
    scheduler.add_job(main, 'interval', seconds=20, args=["a", "b"])  # 每隔60秒(可以是时分秒)执行main函数,args是传参
    scheduler.add_job(main, 'cron', hour=8, minute=57, second=50, args=["a", "b"])  # 定时执行,和crontab差不多
    scheduler.start()
Mr.[先知] 发表于 2022-1-21 10:26
定时任务是一方面 你的一些网络操作的请求这样的 最好采用异步函数去做 这样 就不会卡主 卡死主进程
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-27 09:38

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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