python小知识-APScheduler定时任务

    xiaoxiao2024-12-28  69

    1.基本概念

    不管你使用哪种APScheduler的定时任务,你都需要先了解APScheduler的简单机制。即:job、executors、jobstores、trigger、scheduler等 1.job 即需要被执行的具体任务,主要对应Python中的函数或方法。在APScheduler中即可以装饰器的方式添加,也可以动态添加job。 2.executors 即执行job的对象。通常可以是多线程、多进程、协程等对象。 3. jobstores 即存储job元数据的地方。可以是memory、sqllite、mysql等。 4.trigger 即决定任务的触发模式 4.1date :固定日期触发器:任务只运行一次,运行完毕自动清除;若错过指定运行时间,任务不会被创建 4.2interval: 时间间隔触发器 4.3cron : 指定日期时间周期性触发 (详细说明往下看) 5.scheduler 用于调度和管理上述提到的所有对象。 5.1BlockingScheduler 阻塞定时任务执行器 5.2BackgroundScheduler 后台定时任务执行器

    2.以装饰器方式添加时阻塞方式的时间间隔任务

    from apscheduler.schedulers.blocking import BlockingScheduler sched = BlockingScheduler() # 实例化一个阻塞任务的对象 @sched.scheduled_job('interval', seconds=5) # 以装饰器方式添加定时任务,以5s为间隔来触发 def my_job(): pass sched.start() # 启动任务

    3.动态添加指定日期的后台任务

    from apscheduler.schedulers.blocking import BlockingScheduler # 任务函数 def my_job(): pass sched = BlockingScheduler() # 实例化一个后台任务对象 # 在11,12月份的第三个星期五的00:00,01:00,02:00,03:00触发 sched.add_job(my_job, 'cron', month='11-12', day='3rd fri', hour='0-3') # 添加任务 sched.start() # 开始任务

    4.trigger触发器参数详解

    1. date :固定日期触发器:任务只运行一次,常用参数: 1.1 run_date (datetime 或 str) 作业的运行日期或时间 1.2 timezone (datetime.tzinfo 或 str) 指定时区 2. interval: 时间间隔触发器,常用参数 2.1 weeks (int) 间隔几周 2,2 days (int) 间隔几天 2.3 hours (int) 间隔几小时 2.4 minutes (int) 间隔几分钟 2.5 seconds (int) 间隔多少秒 2.6 start_date (datetime 或 str) 开始日期 2.7 end_date (datetime 或 str) 结束日期 2.8 timezone (datetime.tzinfo 或str) 时区 3. cron : 指定日期时间周期性触发 3.1 year (intstr) 年,4位数字 3.2 month (intstr)(范围1-12) 3.3 day (intstr)(范围1-31 3.4 week (intstr)(范围1-53) 3.5 day_of_week (intstr) 周内第几天或者星期几 (范围0-6 或者 mon,tue,wed,thu,fri,sat,sun) 3.6 hour (intstr)(范围0-23) 3.7 minute (intstr)(范围0-59) 3.8 second (intstr)(范围0-59) 3.9 start_date (datetime 或 str) 最早开始日期(包含) 3.10 end_date (datetime 或 str) 最晚结束时间(包含) 3.11 timezone (datetime.tzinfo 或str) 指定时区

    参考博客

    https://blog.csdn.net/five3/article/details/89500049 https://blog.csdn.net/caiguoxiong0101/article/details/50364236 https://blog.csdn.net/xc_zhou/article/details/80952147

    最新回复(0)