python包中的sched事件调度器怎么用
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,本篇内容主要讲解"python包中的sched事件调度器怎么用",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"python包中的sched事件调度器怎么用"
千家信息网最后更新 2025年11月08日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安全错误
数据库的锁怎样保障安全
数据库的增删改查 返回值
数据库2014ssms
通用网游服务器
已有网络安全防护手段
阿拉伯数字字体软件开发
空间网络安全与验证
页游服务器安全连接错误6
有没有必要去上海做软件开发
莒南软件开发
用友t3还用服务器吗
上海天马网络技术有限公司
冀时办数据库操作异常
惠普服务器进安全模式
主题班会网络安全发言
vc实现数据库增删改查
江南STYLE翻唱软件开发
日本软件开发常用词
嘉定区智能软件开发销售电话
网络安全和安全工程哪个好
互联网科技新闻客户端
国内软件开发企业哪些条件
传奇4换个服务器账号不见了
恐龙岛自己可以开服务器吗
湖北快准车服网络技术有限公司
数据库服务器管理员密码
软件开发未完成已收票分录如何做
数据库图像特征比对
声音数据库
nvr录像机和存储服务器的区别
生态软件开发