python定时器的使用_关于定时器的两种使用方法

news/2025/2/26 7:30:30

在发现Python自身的API在这方面没有很好支持这种情况下,想要使用Timer功能的话,除了第三方的模块外,还可以通过使用标准库为我们提供的sched模块和Timer类。这两个类不能算是真正的Timer,只能算是用来现实Timer的工具类。

不论在客户端应用程序还是服务器组件(包括窗口服务)定时器通常扮演一个重要的角色。写一个高效的定时器驱动型可管理代码要求对程序流程有一个清晰的理解及掌握,NET线程模型的精妙之处。.NET框架类库提供了三种不同的定时器类:System.Windows.Forms.Timer, System.Timers.Timer, 和System.Threading.Timer。每个类为不同的场合进行设计和优化。

56fa36911ecb6.jpg

我们经常需要定时的执行某个任务,在Linux下我们有强大的crontab,但是在Python这个粒度(定时执行函数),如何处理呢?除了第三方的模块外,标准库为我们提供了sched模块和Timer类。

下面将会对这两种类如何实现Timer做个简单的演示:

一、sched

先说sched模块,准确的说,它是一个调度(延时处理机制),每次想要定时执行某任务都必须写入一个调度。

使用步骤如下:

(1)生成调度器:s = sched.scheduler(time.time,time.sleep)

第一个参数是一个可以返回时间戳的函数,第二个参数可以在定时未到达之前阻塞。可以说sched模块设计者是“在下很大的一盘棋”,比如第一个函数可以是自定义的一个函数,不一定是时间戳,第二个也可以是阻塞socket等。

(2)加入调度事件

其实有enter、enterabs等等,我们以enter为例子。

s.enter(x1,x2,x3,x4)

四个参数分别为:间隔事件、优先级(用于同时间到达的两个事件同时执行时定序)、被调用触发的函数,给他的参数(注意:一定要以tuple给如,如果只有一个参数就(xx,))

(3)运行

s.run()

注意sched模块不是循环的,一次调度被执行后就Over了,如果想再执行,请再次enter

56fb3042868da.png

二、Timer

Timer类也是一次性触发的,思路和sched大概差不多。

56fa370205d0e.png

虽然说上面的两种现实看起来都很不专业,但是如果不借助第三方的库,可能也只能这样了。

通过上面的简洁的教程,编制python定时器也不是那么难学,相信你一定学会了python定时器的使用方法,赶紧用起来吧。


http://www.niftyadmin.cn/n/708096.html

相关文章

图片仓库

2019独角兽企业重金招聘Python工程师标准>>> 图片仓库 转载于:https://my.oschina.net/u/3099393/blog/798400

python 获取excel中的图表_使用Python将Excel中的图表导出为图像

我知道这是一个老问题,但它有助于我走上正确的轨道,所以我回来分享我完成的脚本,找到工作表中的所有图表,并将它们导出为.png。 上面的脚本可以工作,但是由于它只是复制工作表中的一个区域,所以您要依赖于正…

爬取《悲伤逆流成河》猫眼信息 | 郭敬明五年电影最动人之作

一、我的感受 知道《悲伤逆流成河》上映还是在qq空间看见学弟发了说说,突然想起初中追小四的书,每天看到晚上10点多,昨天看了枪版的《悲伤逆流成河》,整个故事情节几乎和小说一模一样,当然缩减是避免不了的&#xff0c…

java高并发多线程架构_多线程与高并发(二)线程安全

上一篇学习了多线程的一些基础知识:多线程的基本概念,及创建和操作多线程。内容相对简单,但多线程的知识肯定不会这么简单,否则我们也不需要花这么多心思去学习,因为多线程中容易出现线程安全问题。那么什么是线程安全…

cube sdio fatfs 初始化sd卡_STM32F407ZGT6之FATFS操作SD卡注意事项

0、写在前面这个是用STM32操作SD卡时遇到的一些问题,写在这里备忘用。本人机械专业,涉及电子的可能不够专业,如有纰漏错误,欢迎指正。1、创建一个文件夹和文件实例代码1:FILINFO 其中FILINFO 是文件信息结构体&#xf…

获取已加载完成的下拉框的所有值,并动态给option设置selected

2019独角兽企业重金招聘Python工程师标准>>> //循环取出下拉框的所有值 $(#rolename option).each(function(){//判断obj.rolename数据库中返回的值是否与下拉框的某一个option值相同if($(this).val() obj.rolename){//将下拉框option的值与obj.rolename相同的一列…

java 唐胡子_长沙.NET社区之光

奈何万事开头难迎着改革开放四十年带来的春风,长沙的互联网生态环境以唐胡子俱乐部为首的一众互联网社群讲长沙互联网的环境推上了一个新的台阶。年底,我与有幸一起共事的溪源兄,下班后一起闲聊,觉着长沙的.NET的生态环境亟待改善…

Yii2中多表关联查询(hasOne、hasMany、join、joinwith)

2019独角兽企业重金招聘Python工程师标准>>> 表结构 现在有客户表、订单表、图书表、作者表, 客户表Customer (id customer_name) 订单表Order (id order_name customer_id book_id) 图书表Book (id book_name author_i…