千家信息网

python包中的sched事件调度器怎么用

发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,本篇内容主要讲解"python包中的sched事件调度器怎么用",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"python包中的sched事件调度器怎么用"
千家信息网最后更新 2025年01月18日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安全错误 数据库的锁怎样保障安全 广州软件开发人员工资标准 重庆诊疗软件开发数据科学服务 数据库插入多条数据只有一列不同 ai视频智能分析服务器 台州汽车软件开发公司简介 软件开发入门教学视频教程 服务器运行数据不可用 计算机网络技术应届年薪 战争前线阿拉希服务器 轩磊网络技术有限公司 卡普空网络技术 宁波余姚市戴尔塔式服务器 独立软件开发商 拓维信息 如何在教学运用网络技术 企业仓库软件开发平台 服务器带宽可以放大或者缩小吗 linux多台服务器管理 网络安全需求有哪些 web内网管理服务器部署 网络安全情报种类 深圳开放大学计算机网络技术 定制企业app软件开发杭州 网络安全基础防范情况总结 如何在教学运用网络技术 如何搭建jsp服务器 数据库建库建表教程 办公网络安全基础调查报告 奥丁神叛手游服务器忙怎么办 征途单机数据库在哪 四川闲人互联网络科技有限公司
0