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

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

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

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

Python中interval和cron的使用方法

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

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

1. interval 触发器

示例:hR228资讯网——每日最新资讯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() 函数。hR228资讯网——每日最新资讯28at.com

2. interval 偏移量

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

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

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

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

  • jitter: 偏移量

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

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

示例:hR228资讯网——每日最新资讯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 秒之间的偏移量。这样,任务的实际执行时间将在每小时的范围内有轻微的随机变化。hR228资讯网——每日最新资讯28at.com

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

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

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

3. cron 触发器

示例:hR228资讯网——每日最新资讯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() 函数。hR228资讯网——每日最新资讯28at.com

4.cron 时间表达式

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

时间表达式的格式:

分钟 小时 天 月 星期

每个字段可以使用以下值:hR228资讯网——每日最新资讯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() 函数。hR228资讯网——每日最新资讯28at.com

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

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

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

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

标签:
  • 热门焦点
  • 天猫精灵Sound Pro体验:智能音箱没有音质?来听听我的

    这几年除了手机作为智能生活终端最主要的核心之外,第二个可以成为中心点的产品是什么?——是智能音箱。 手机在执行命令的时候有两种操作方式,手和智能语音助手,而智能音箱只
  • 一年经验在二线城市面试后端的经验分享

    忠告这篇文章只适合2年内工作经验、甚至没有工作经验的朋友阅读。如果你是2年以上工作经验,请果断划走,对你没啥帮助~主人公这篇文章内容来自 「升职加薪」星球星友 的投稿,坐
  • 得物效率前端微应用推进过程与思考

    一、背景效率工程随着业务的发展,组织规模的扩大,越来越多的企业开始意识到协作效率对于企业团队的重要性,甚至是决定其在某个行业竞争中突围的关键,是企业长久生存的根本。得物
  • 每天一道面试题-CPU伪共享

    前言:了不起:又到了每天一到面试题的时候了!学弟,最近学习的怎么样啊 了不起学弟:最近学习的还不错,每天都在学习,每天都在进步! 了不起:那你最近学习的什么呢? 了不起学弟:最近在学习C
  • 重估百度丨“晚熟”的百度云,能等到春天吗?

    ©自象限原创作者|程心排版|王喻可2016年7月13日,百度云计算战略发布会在北京举行,宣告着百度智能云的正式启程。彼时的会场座无虚席,甚至排队排到了门外,在场的所有人几乎都
  • 微博大门常打开,迎接海外画师漂洋东渡

    作者:互联网那些事“起猛了,我能看得懂日语了”。“为什么日本人说话我能听懂?”“中文不像中文,日语不像日语,但是我竟然看懂了”…&hell
  • 消息称小米汽车开始筛选交付中心:需至少120个车位

    IT之家 7 月 7 日消息,日前,有微博简介为“汽车行业从业者、长三角一体化拥护者”的微博用户 @长三角行健者 发文表示,据经销商集团反馈,小米汽车目前
  • 联想小新Pad Pro 12.6将要推出,搭载高通骁龙 870 处理器

    联想小新Pad Pro 12.6将于秋季新品会上推出,官方按照惯例直接在发布会前给出了机型的所有参数。联想小新 Pad Pro 12.6 将搭载高通骁龙 870 处理器,重量为 5
  • 苹果MacBook Pro 2021测试:仍不支持平滑滚动

    据10月30日9to5 Mac 消息报道,苹果新的 14 英寸和 16 英寸 MacBook Pro 2021 上市后获得了不错的评价,亮点包括行业领先的性能,令人印象深刻的电池续航,精美丰
Top