当前位置:首页 > 科技  > 软件

Python BackgroundScheduler中Interval、Cron及偏移量的使用方法

来源: 责编: 时间:2024-03-21 09:47:45 279观看
导读Python中interval和cron的使用方法apscheduler 库 是 Python 中一个功能强大的定时任务库。interval 和 cron 是 apscheduler 库中常用的两种触发器类型。interval 触发器 用于指定任务执行的间隔时间。cron 触发器

UIg28资讯网——每日最新资讯28at.com

Python中interval和cron的使用方法

  • apscheduler 库 是 Python 中一个功能强大的定时任务库。
  • interval 和 cron 是 apscheduler 库中常用的两种触发器类型。
  • interval 触发器 用于指定任务执行的间隔时间。
  • cron 触发器 用于指定任务执行的时间表达式。

以下是 interval 和 cron 的使用方法:UIg28资讯网——每日最新资讯28at.com

1. interval 触发器

示例:UIg28资讯网——每日最新资讯28at.com

from apscheduler.schedulers.background import BackgroundSchedulerdef job1():    logging.info(f'{time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))} 执行')# 创建调度器scheduler = BackgroundScheduler()# 添加定时任务scheduler.add_job(job1, 'interval', seconds=3600)# 启动调度器scheduler.start()

以上代码将每小时执行一次 job1() 函数。UIg28资讯网——每日最新资讯28at.com

2. interval 偏移量

interval 触发器 支持偏移量,用于指定任务执行时间的随机偏移量。UIg28资讯网——每日最新资讯28at.com

语法:UIg28资讯网——每日最新资讯28at.com

scheduler.add_job(func, 'interval', seconds=3600, jitter=3600)

参数:UIg28资讯网——每日最新资讯28at.com

  • jitter: 偏移量

当使用 BackgroundScheduler 的 add_job 方法时,可以通过 jitter 参数来添加偏移量,以增加任务执行时间的随机性。jitter 是一个可选参数,用于指定任务执行时间的随机偏移范围。UIg28资讯网——每日最新资讯28at.com

具体来说,jitter 参数允许你在指定的时间间隔内随机选择一个偏移量,将它添加到任务的执行时间上。这样可以避免在同一时间执行大量任务,减轻系统负载和资源竞争。UIg28资讯网——每日最新资讯28at.com

示例:UIg28资讯网——每日最新资讯28at.com

from apscheduler.schedulers.background import BackgroundSchedulerdef job1():    logging.info(f'{time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))} 执行')# 创建调度器scheduler = BackgroundScheduler()# 添加定时任务scheduler.add_job(job1, 'interval', seconds=3600, jitter=3600)# 启动调度器scheduler.start()

以上代码使用 add_job 方法添加了一个任务,并使用 interval 触发器指定了任务的执行方式。seconds=3600 表示任务将每隔 3600 秒(1 小时)执行一次。jitter=3600 表示在每次任务执行时间的基础上,随机选择一个介于 -3600 和 3600 秒之间的偏移量。这样,任务的实际执行时间将在每小时的范围内有轻微的随机变化。UIg28资讯网——每日最新资讯28at.com

通过使用 jitter 偏移量,可以避免多个任务在完全相同的时间点执行,从而更好地分散任务负载并提高系统的可靠性和性能。UIg28资讯网——每日最新资讯28at.com

需要注意的是,jitter 偏移量的单位与触发器中指定的时间间隔单位相同。在上述示例中,seconds=3600 表示时间间隔为秒,因此 jitter=3600 的单位也是秒。如果使用其他时间单位(如分钟或小时),则偏移量应相应地进行调整。UIg28资讯网——每日最新资讯28at.com

总结:jitter 偏移量允许你给任务的执行时间添加一定的随机性,以避免任务在完全相同的时间点执行。通过在 add_job 方法中设置 jitter 参数,你可以控制偏移量的范围和单位,以满足任务调度的需求。UIg28资讯网——每日最新资讯28at.com

3. cron 触发器

示例:UIg28资讯网——每日最新资讯28at.com

from apscheduler.schedulers.background import BackgroundSchedulerdef job1():    logging.info(f'{time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))} 执行')# 创建调度器scheduler = BackgroundScheduler()# 添加定时任务scheduler.add_job(job1, 'cron', hour='*')# 启动调度器scheduler.start()

以上代码将在每小时的 00 分执行一次 job1() 函数。UIg28资讯网——每日最新资讯28at.com

4.cron 时间表达式

cron 触发器 支持时间表达式,用于指定任务执行的时间。UIg28资讯网——每日最新资讯28at.com

时间表达式的格式:

分钟 小时 天 月 星期

每个字段可以使用以下值:UIg28资讯网——每日最新资讯28at.com

  • *: 表示所有值
  • ,: 表示分隔符
  • -: 表示范围
  • /: 表示间隔

示例:

from apscheduler.schedulers.background import BackgroundSchedulerdef job1():    logging.info(f'{time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))} 执行')# 创建调度器scheduler = BackgroundScheduler()# 添加定时任务scheduler.add_job(job1, 'cron', hour='12', minute='30')# 启动调度器scheduler.start()

以上代码将在12点的 30 分执行一次 job1() 函数。UIg28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-78305-0.htmlPython BackgroundScheduler中Interval、Cron及偏移量的使用方法

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 虚拟现实和增强现实:数字化转型的下一个前沿

下一篇: 探索C++中引入nullptr关键字的意义与用法

标签:
  • 热门焦点
  • Mate60手机壳曝光 致敬自己的经典设计

    8月3日消息,今天下午博主数码闲聊站带来了华为Mate60的第三方手机壳图,可以让我们在真机发布之前看看这款华为全新旗舰的大致轮廓。从曝光的图片看,Mate 60背后摄像头面积依然
  • 影音体验是真的强 简单聊聊iQOO Pad

    大公司的好处就是产品线丰富,非常细分化的东西也能给你做出来,例如早先我们看到了新的vivo Pad2,之后我们又在iQOO Neo8 Pro的发布会上看到了iQOO的首款平板产品iQOO Pad。虽
  • 6月iOS设备性能榜:M2稳居榜首 A系列只能等一手3nm来救

    没有新品发布,自然iOS设备性能榜的上榜设备就没有什么更替,仅仅只有跑分变化而产生的排名变动,毕竟苹果新品的发布节奏就是这样的,一年下来也就几个移动端新品,不会像安卓厂商,一
  • 如何正确使用:Has和:Nth-Last-Child

    我们可以用CSS检查,以了解一组元素的数量是否小于或等于一个数字。例如,一个拥有三个或更多子项的grid。你可能会想,为什么需要这样做呢?在某些情况下,一个组件或一个布局可能会
  • 多线程开发带来的问题与解决方法

    使用多线程主要会带来以下几个问题:(一)线程安全问题  线程安全问题指的是在某一线程从开始访问到结束访问某一数据期间,该数据被其他的线程所修改,那么对于当前线程而言,该线程
  • 猿辅导与新东方的两种“归途”

    作者|卓心月 出品|零态LT(ID:LingTai_LT)如何成为一家伟大企业?答案一定是对“势”的把握,这其中最关键的当属对企业战略的制定,且能够站在未来看现在,即使这其中的
  • iQOO Neo8 Pro评测:旗舰双芯加持 最强性能游戏旗舰

    【Techweb评测】去年10月,iQOO推出了一款Neo7手机,该机搭载了联发科天玑9000+,配备独显芯片Pro+,带来了同价位段最佳的游戏体验,一经上市便受到了诸多用
  • “买真退假” 这种“羊毛”不能薅

    □ 法治日报 记者 王春   □ 本报通讯员 胡佳丽  2020年初,还在上大学的小东加入了一个大学生兼职QQ群。群主“七王”在群里介绍一些刷单赚
  • 北京:科技教育体验基地开始登记

      北京“科技馆之城”科技教育体验基地登记和认证工作日前启动。首批北京科技教育体验基地拟于2023年全国科普日期间挂牌,后续还将开展常态化登记。  北京科技教育体验基
Top