当前位置: 首页 > news >正文

python自动定时任务schedule库的使用方法

当你需要在 Python 中定期执行任务时,schedule 库是一个非常实用的工具。它可以帮助你自动化定时任务。以下是一些使用示例:

  1. 基本使用

    import schedule
    import timedef job():print("I'm working...")schedule.every(10).minutes.do(job)while True:schedule.run_pending()time.sleep(1)
    

    上面的代码表示每隔 10 分钟执行一次 job 函数,非常简单方便。

  2. 更多调度任务例子

    import schedule
    import timedef job():print("I'm working...")# 每十分钟执行任务
    schedule.every(10).minutes.do(job)
    # 每个小时执行任务
    schedule.every().hour.do(job)
    # 每天的10:30执行任务
    schedule.every().day.at("10:30").do(job)
    # 每个月执行任务
    schedule.every().monday.do(job)
    # 每个星期三的13:15分执行任务
    schedule.every().wednesday.at("13:15").do(job)
    # 每分钟的第17秒执行任务
    schedule.every().minute.at(":17").do(job)while True:schedule.run_pending()time.sleep(1)
    
  3. 只运行一次任务

    import schedule
    import timedef job_that_executes_once():# 此处编写的任务只会执行一次...return schedule.CancelJobschedule.every().day.at('22:30').do(job_that_executes_once)while True:schedule.run_pending()time.sleep(1)
    
  4. 参数传递给作业

    import scheduledef greet(name):print('Hello', name)# 将额外的参数传递给 job 函数
    schedule.every(2).seconds.do(greet, name='Alice')
    schedule.every(4).seconds.do(greet, name='Bob')
    
  5. 获取目前所有的作业

    all_jobs = schedule.get_jobs()
    
  6. 取消所有作业

    schedule.clear()
    
  7. 标签功能

    # 打标签
    schedule.every().day.do(greet, 'Andrea').tag('daily-tasks', 'friend')
    schedule.every().hour.do(greet, 'John').tag('hourly-tasks', 'friend')
    # 获取所有该标签的任务
    friends = schedule.get_jobs('friend')
    # 取消所有 daily-tasks 标签的任务
    schedule.clear('daily-tasks')
    
  8. 设定作业截止时间

    from datetime import datetime, timedelta, timedef job():print('Boo')# 每个小时运行作业,18:30后停止
    schedule.every(1).hours.until("18:30").do(job)
    # 其他截止时间设置...
    

[这些示例涵盖了从秒到月的不同配置,你可以根据需求选择合适的定时任务方式。

http://www.lryc.cn/news/300636.html

相关文章:

  • 用机器学习方法重构期货商品板块
  • 51单片机项目(29)——基于51单片机的避障跟随小车
  • 人工智能学习与实训笔记(六):百度飞桨套件使用方法
  • Linux第一个小程序-进度条
  • YoloV8改进策略:Block改进|Mamba-UNet改进YoloV8,打造全新的Yolo-Mamba网络
  • 数据分析基础之《pandas(8)—综合案例》
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • define和typedef
  • SpringCloud之Nacos用法笔记
  • 【c++】拷贝构造函数
  • 17.3.1.2 曝光
  • 【Win10 触摸板】在插入鼠标时禁用触摸板,并在没有鼠标时自动启用触摸板。取消勾选连接鼠标时让触摸板保持打开状态,但拔掉鼠标后触摸板依旧不能使用
  • 排序算法---桶排序
  • FPGA_工程_基于rom的vga显示
  • 代码随想录算法训练营第31天|● 理论基础 ● 455.分发饼干 ● 376. 摆动序列 ● 53. 最大子序和
  • 无人机地面站技术,无人机地面站理论基础详解
  • 2024.2.13
  • 论文阅读:四足机器人对抗运动先验学习稳健和敏捷的行走
  • .NET Core WebAPI中封装Swagger配置
  • 28. 找出字符串中第一个匹配项的下标
  • 宿舍|学生宿舍管理小程序|基于微信小程序的学生宿舍管理系统设计与实现(源码+数据库+文档)
  • CVE-2022-25487 漏洞复现
  • C#面:强类型和弱类型
  • nodejs和npm和vite
  • 相机图像质量研究(24)常见问题总结:CMOS期间对成像的影响--摩尔纹
  • Redis -- 数据库管理
  • 蓝桥杯(Web大学组)2023省赛真题:视频弹幕
  • 真假难辨 - Sora(OpenAI)/世界模拟器的技术报告
  • Linux第52步_移植ST公司的linux内核第4步_关闭内核模块验证和log信息时间戳_编译_并通过tftp下载测试
  • ctfshow-web21~28-WP