python包中的sched事件调度器怎么用
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇内容主要讲解"python包中的sched事件调度器怎么用",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"python包中的sched事件调度器怎么用"
千家信息网最后更新 2026年11月02日python包中的sched事件调度器怎么用
本篇内容主要讲解"python包中的sched事件调度器怎么用",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"python包中的sched事件调度器怎么用"吧!
一、延迟运行事件
在一个延迟或规定时间之后执行事件,需要采用enter()方法,参数如下:
间隔时间 ( 具体值决定与delayfunc,这里为秒 )
优先级 ( 两个事件在同一时间到达时,先执行哪一个 )
调用的函数
函数参数
import schedimport time# 生成调度器scheduler = sched.scheduler(time.time, time.sleep)def print_event(name): print ('EVENT:', time.time(), name)print ('START:', time.time())# 分别设置在执行后2秒、3秒之后执行调用函数scheduler.enter(2, 1, print_event, ('first',))scheduler.enter(3, 1, print_event, ('second',))# 运行调度器scheduler.run()# 输出结果# START: 1532050215.3737717# EVENT: 1532050217.3747234 first# EVENT: 1532050218.375626 second二、重叠事件
调用 run() 块执行所有的事件
每个事件都在同一线程中运行,所以如果一个事件需要更长的时间,延迟事件将会有重叠。
为了不丢失事件,延迟事件将会在之前事件运行完再被执行
但一些延迟事件可能会晚于原本计划的事件
import schedimport timescheduler = sched.scheduler(time.time, time.sleep)def long_event(name): print('BEGIN EVENT :', time.time(), name) time.sleep(2) print('FINISH EVENT:', time.time(), name)print('START:', time.time())scheduler.enter(2, 1, long_event, ('first',))# 事件无法在设想的3秒后执行,将会顺延执行scheduler.enter(3, 1, long_event, ('second',))scheduler.run()# 输出结果# START: 1532051082.8237524# BEGIN EVENT : 1532051084.8392828 first# FINISH EVENT: 1532051086.8475456 first# BEGIN EVENT : 1532051086.8475456 second# FINISH EVENT: 1532051088.8557353 second三、事件优先级
如果多个事件是同一时间执行,通过设置他们的优先级值,用于确定顺序运行
import schedimport timescheduler = sched.scheduler(time.time, time.sleep)def print_event(name): print('EVENT:', time.time(), name)now = time.time()print('START:', now)scheduler.enterabs(now+2, 2, print_event, ('first',))scheduler.enterabs(now+2, 1, print_event, ('second',))scheduler.run()# 输出结果# START: 1532052567.6057265# EVENT: 1532052569.621258 second# EVENT: 1532052569.621258 first四、取消事件
利用enter()和enterabs()返回一个引用事件用来取消它
import schedimport threadingimport timescheduler = sched.scheduler(time.time, time.sleep)# 建立一个全局 线程计数器counter = 0def increment_counter(name): global counter print('EVENT:', time.time(), name) counter += 1 print('NOW:', counter)print('START:', time.time())e1 = scheduler.enter(2, 1, increment_counter, ('E1',))e2 = scheduler.enter(3, 1, increment_counter, ('E2',))# 开始一个线程执行事件t = threading.Thread(target=scheduler.run)t.start()# 在主线程,取消第一个预定事件scheduler.cancel(e1)# 等待线程调度程序完成运行t.join()# 输出结果# START: 1532053265.5280123# EVENT: 1532053268.528813 E2# NOW: 1五、其他方法
# 判断队列是否为空scheduler.empty()# 只读属性,返回一个即将到达的事件列表(按到达事件排序),每个事件都是有 time 、 priority 、 action 、 argument 组成的 namedtuplescheduler.queue
到此,相信大家对"python包中的sched事件调度器怎么用"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
事件
调度
运行
时间
线程
延迟
结果
输出
优先级
函数
方法
内容
参数
学习
实用
更深
两个
全局
兴趣
原本
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
科技互联网龙头
互联网科技行业发展
互联网通讯科技
互联网扶贫科技
西安互联网科技
北京互联网络科技有限公司
佰商互联网科技有限公司
科技类的互联网平台
互联网汽车科技小镇
湖南诚度互联网科技有限公司
互联网校园科技培训
搜狐科技互联网
想开互联网科技公司怎么样
996高科技互联网公司
杭州披云加互联网科技有限公司
广州有谷有贝互联网科技有限公司
上海乐五互联网科技有限公司
重庆科技产业互联网有哪些
恒生科技互联网指数十大成分股
高科技和互联网的现代国家
互联网科技园
百单网互联网科技有限公司怎么样
互联网科技缩写
开启互联网科技时代小说
互联网科技有哪些公司
四川慕妮娅互联网科技有限公司
美国互联网科技公司
浙南科技城互联网大厦招聘
网互联网络科技
互联网科技快速发展优美句子