• python定时器


    一.Timer

    Timer为threading中的一个类,用来指定的秒数后调用函数,我们来看下Timer类的构造参数。

    interval:设置定时运行的时间

    function:设置定时的事件

    args:参数

    kwargs:字典类型的参数

    下面我们看下具体的用法

    1.无参的情况下

    from threading import Timer
    def fun():
        print("我是一个定时器")
    
    t = Timer(3, fun)  # 声明一个定时器,设置多少3s后执行
    t.start()  # 启动定时器

    2.有参的情况下

    复制代码
    from threading import Timer
    
    def fun(name):
        print("我是一个定时器", name)
    
    t = Timer(3, fun, args=("黎明",))  # 声明一个定时器,设置多少s后执行
    t.start()  # 启动定时器
    复制代码

    3.多参的情况下

    复制代码
    from threading import Timer
    
    def fun(name, age):
        print("我是一个定时器", name, age)
    
    t = Timer(3, fun, args=("黎明", 1))  # 声明一个定时器,设置多少s后执行
    t.start()  # 启动定时器
    复制代码

    4.要想设置每隔3s运行一次

    复制代码
    from threading import Timer
    
    a = 0
    
    def fun():
        global a
        a = a + 1
        print("我是一个定时器")
        t = Timer(3, fun)  # 声明一个定时器,设置多少s后执行
        t.start()  # 启动定时器
        if a == 3:
            t.cancel()  # 取消定时器
    
    fun()
    复制代码

    start():启动定时任务

    cancel():取消定时任务

    二.schedule

    schedule是一个轻量级的定时库,可指定某秒/分/时/天/周的时间。

    1.因为schedule是第三方库,使用时需提前安装

    pip install schedule

    2.设置格式

    scedule.every(时间数).时间类型.do(job):表单个时间

    scedule.every(时间数1).to(时间数2).时间类型.do(job):表一段时间范围时间

    3.具体用法

    设置每隔5秒后运行一次

    复制代码
    import schedule
    
    def fun(name, age):
        print("我是一个定时器", name, age)
    
    schedule.every(5).seconds.do(fun, "李明", 12)  # 每隔5s运行一次
    
    while True:
        schedule.run_pending()  # 运行所有可以运行的任务
    复制代码

    设置每隔1-5秒运行一次

    复制代码
    import schedule
    
    def fun(name, age):
        print("我是一个定时器", name, age)
    
    schedule.every(1).to(5).seconds.do(fun, "李明", 12)  # 每隔1-5s运行一次
    
    while True:
        schedule.run_pending()  # 运行所有可以运行的任务
    复制代码

    下面设置分/时/天/周就不一一介绍了,直接贴写法了

    复制代码
    schedule.every(2).minutes.do(fun, "李明", 12)  # 每2min运行一次
    schedule.every(2).minutes.at(":20").do(fun, "李明", 12)  # 每2min30s运行一次
    schedule.every(2).to(2).minutes.do(fun, "李明", 12)  # 每2-5min运行一次
    schedule.every().hour.do(fun, "李明", 12)  # 每2小时执行一次
    schedule.every().hour.at(":40").do(fun, "李明", 12)  # 每小时40分钟执行一次
    schedule.every().day.do(fun, "李明", 12)  # 每天当前时间执行一次
    schedule.every().day.at("15:15").do(fun, "李明", 12)  # 每天规定时间执行一次,
    schedule.every().tuesday.at("15:19:30").do(fun, "李明", 12)  # 每周二15:19:30运行一次
    schedule.every().tuesday.do(fun, "李明", 12)  # 每周二当前时间运行一次
    复制代码

    周一至周五写法

    monday

    tuesday

    wednesday

    thursday

    friday

    saturday

    sunday

    4.取消定时任务

    clear():默认取消全部任务,也可通过tag取消指定的任务

    复制代码
    import schedule
    
    
    def fun(name, age):
        print("我是一个定时器", name, age)
    
    
    schedule.every(1).to(5).seconds.do(fun, "李明", 14).tag("tag")  # 每隔1-5s运行一次,设置tag
    
    while True:
        schedule.run_pending()  # 运行所有可以运行的任务
        schedule.clear("tag")  # 取消指定标签的任务
        # schedule.clear()  # 取消全部任务
    复制代码

     

     

     

     

     

    文章来源:https://www.cnblogs.com/lihongtaoya/ ,请勿转载

     

  • 相关阅读:
    从0开始学JAVA【3】
    人工神经网络的分类包括,人工神经网络的分类有
    Azure - 机器学习:创建机器学习所需资源,配置工作区
    【毕业设计】1-1Matlab小电流接地系统的建模与单相故障的仿真分析(仿真工程文件+结果图+论文+PPT)
    一个HashMap跟面试官扯了半个小时
    【影刀演示_发送邮件的格式化HTML留存】
    抖音怎么一次性隐藏全部视频
    ChatGPT实践-构建简单的AI聊天机器人(python)
    记一次U8登录异常问题
    腾讯云产品可观测最佳实践 (Function)¶
  • 原文地址:https://www.cnblogs.com/lihongtaoya/p/17132429.html