首页 > 其他分享 >利用内置模块sched实现定时任务

利用内置模块sched实现定时任务

时间:2023-03-17 13:55:38浏览次数:34  
标签:__ 内置 sched 函数 事件 模块 time

sched模块实现了一个通用事件调度器,在调度器类使用一个延迟函数等待特定的时间,执行任务。同时支持多线程应用程序,在每个任务执行后会立刻调用延时函数,以确保其他线程也能执行。
class sched.scheduler(timefunc, delayfunc)这个类定义了调度事件的通用接口,它需要外部传入两个参数,timefunc是一个没有参数的返回时间类型数字的函数(常用使用的如time模块里面的time),delayfunc应该是一个需要一个参数来调用、与timefunc的输出兼容、并且作用为延迟多个时间单位的函数(常用的如time模块的sleep)。
代码示例:

import datetime
import time
import sched
def time_printer():
    now = datetime.datetime.now()
    ts = now.strftime('%Y-%m-%d %H:%M:%S')
    print('do func time :', ts)
    loop_monitor()
def loop_monitor():
    s = sched.scheduler(time.time, time.sleep)  # 生成调度器
    s.enter(5, 1, time_printer, ())
    s.run()
if __name__ == "__main__":
    loop_monitor()

scheduler对象主要方法:

  • enter(delay, priority, action, argument),安排一个事件来延迟delay个时间单位。
  • cancel(event):从队列中删除事件。如果事件不是当前队列中的事件,则该方法将跑出一个ValueError。
  • run():运行所有预定的事件。这个函数将等待(使用传递给构造函数的delayfunc()函数),然后执行事件,直到不再有预定的事件。

标签:__,内置,sched,函数,事件,模块,time
From: https://www.cnblogs.com/DTCLOUD/p/17226489.html

相关文章

  • ansible group模块
    目录ansiblegroup模块模块用法yml模版ansiblegroup模块模块用法yml模版-name:验证auditors组是否存在group: name:auditors state:present......
  • ansible authorized_key模块
    目录ansibleauthorized_key模块使用模版修改sudoers和禁止root用户登录ansibleauthorized_key模块复制公钥,设置免密登录的作用使用模版-name:setauthorizedkey......
  • Python 中,set() 是一个内置函数,它用于创建一个集合(set)。
    在Python中,set()是一个内置函数,它用于创建一个集合(set)。集合是一种无序的、不重复的的数据集合,它的元素可以是任何不可变的数据类型,如整数、浮点数、字符串、元组等。......
  • arduino 蓝牙模块测试
    今天在chatgpt的高效查询下顺利地测试了arduino的蓝牙功能: 蓝牙模块(JDY-31):原材料ArduinoUNO开发板x1蓝牙模块JDY-31x1子母杜邦线若干马达/LED灯x1(本次用的......
  • SQL - 内置函数
         ......
  • 安装paramiko模块成功之后,在IDE中导入报错 "No modeule named 'paramiko'"
    1.背景环境:win10系统,电脑中安装了python2和python3,目前使用python3的环境,pip使用正常。现象:cmd下pipinstallparamiko成功,并且piplist里有paramiko......
  • python中的hashlib模块
    md5是一种常见不可逆加密算法,使用简单,计算速度快,在很多场景下都会用到,比如:给用户上传的文件命名,数据库中保存的用户密码,下载文件后检验文件是否正确等。官网:https://docs.......
  • 【Irrlicht引擎 笔记】Core模块
    irr::core向量、平面、数组、列表等基础类都可以在这个命名空间中找到irr::coreirr::core::vector2d<T>irr::core::vector3d<T>irr::core::vector2d<T>1.判断......
  • (五)博客园美化(风格1):音乐插件等小模块的运用
    空闲的时候自己根据很多大神的美化教程,把自己的博客园简单装修了下。再此整理一下美化方式和步骤,如果喜欢本人博客这种风格,可以参考一下这个系列。一、ForkmeonGitee......
  • eclipse创建maven模块化web项目
        第一步,新建项目,把src目录删除       第二步,项目右键,新增模块dao, 第三步,pom.xml报错,修改<artifactId>maven-jar-plugin</artifactId><ve......