如何使用Python安排一个不受系统时间变化影响的周期性任务
我正在使用python的sched模块定期运行一个任务,我想我遇到过一个bug. 我发现它依赖于运行python脚本的系统的时间.例如,假设我想每5秒运行一次任务.如果我转发系统时间,则计划任务将按预期运行.但是,如果我将系统时间倒回到1天,那么下一个计划任务将在5秒内运行1天. 如果您运行下面的脚本,然后几天前更改系统时间,那么您可以重现该问题.该问题可以在Linux和Windows上重现.
任何人都有这个问题的任何python解决方案? 最佳答案
从the sched documentation开始:
您遇到的问题是您的代码使用time.time()作为timefunc,其返回值(在没有参数的情况下调用时)是当前系统时间,因此会受到重新缠绕系统时钟的影响. 为了使代码免受系统时间的影响,您需要提供一个不依赖于系统时间,开始/当前时间戳等的timefunc. 您可以编写自己的函数,例如,返回自启动过程以来的秒数,您必须在代码中实际计算(即不根据时间戳增量计算它). time.clock()函数可能有帮助,如果它基于CPU时间计数器,但我不确定这是否真实. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 在Django模板中使用来自python-social-auth的extra_data
- python – Pymongo BSON二进制保存和检索?
- python爬虫最简单代码
- wifi 掉线自动重连
- Python 四种数值类型(int,long,float,complex)区别及转换
- Django中对通过测试的用户进行限制访问的方法
- python – 错误:(gcloud.preview.app.deploy)错误响应:[
- 昨天白富美学姐请我吃大闸蟹!我用Python打造恋爱大法,原来
- 在Python中marshal对象序列化的相关知识
- python – VirtualEnv没有正确设置路径,无法使用已安装的