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

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

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

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

Python中interval和cron的使用方法

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

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

1. interval 触发器

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

2. interval 偏移量

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

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

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

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

  • jitter: 偏移量

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

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

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

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

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

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

3. cron 触发器

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

4.cron 时间表达式

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

时间表达式的格式:

分钟 小时 天 月 星期

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

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

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

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

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

标签:
  • 热门焦点
  • 红魔电竞平板评测:大屏幕硬实力

    红魔电竞平板评测:大屏幕硬实力

    前言:三年的疫情因为要上网课的原因激活了平板市场,如今网课的时代已经过去,大家的生活都恢复到了正轨,这也就意味着,真正考验平板电脑生存的环境来了。也就是面对着这种残酷的
  • 在线图片编辑器,支持PSD解析、AI抠图等

    在线图片编辑器,支持PSD解析、AI抠图等

    自从我上次分享一个人开发仿造稿定设计的图片编辑器到现在,不知不觉已过去一年时间了,期间我经历了裁员失业、面试找工作碰壁,寒冬下一直没有很好地履行计划.....这些就放在日
  • 使用LLM插件从命令行访问Llama 2

    使用LLM插件从命令行访问Llama 2

    最近的一个大新闻是Meta AI推出了新的开源授权的大型语言模型Llama 2。这是一项非常重要的进展:Llama 2可免费用于研究和商业用途。(几小时前,swyy发现它已从LLaMA 2更名为Lla
  • 零售大模型“干中学”,攀爬数字化珠峰

    零售大模型“干中学”,攀爬数字化珠峰

    文/侯煜编辑/cc来源/华尔街科技眼对于绝大多数登山爱好者而言,攀爬珠穆朗玛峰可谓终极目标。攀登珠峰的商业路线有两条,一是尼泊尔境内的南坡路线,一是中国境内的北坡路线。相
  • 年轻人的“职场羞耻感”,无处不在

    年轻人的“职场羞耻感”,无处不在

    作者:冯晓亭 陶 淘 李 欣 张 琳 马舒叶来源:燃次元“人在职场,应该选择什么样的着装?”近日,在网络上,一个与着装相关的帖子引发关注,在该帖子里,一位在高级写字楼亚洲金
  • 阿里瓴羊One推出背后,零售企业迎数字化新解

    阿里瓴羊One推出背后,零售企业迎数字化新解

    作者:刘旷近年来随着数字经济的高速发展,各式各样的SaaS应用服务更是层出不穷,但本质上SaaS大多局限于单一业务流层面,对用户核心关切的增长问题等则没有提供更好的解法。在Saa
  • 华为Mate60系列模具曝光:采用硕大圆形后置相机模组+拼接配色方案

    华为Mate60系列模具曝光:采用硕大圆形后置相机模组+拼接配色方案

    据此前多方爆料,今年华为将开始恢复一年双旗舰战略,除上半年推出的P60系列外,往年下半年的Mate系列也将迎来更新,有望在9-10月份带来全新的华为Mate60
  • iQOO 11S新品发布会

    iQOO 11S新品发布会

    iQOO将在7月4日19:00举行新品发布会,推出杭州亚运会电竞赛事官方用机iQOO 11S。
  • 2022爆款:ROG魔霸6 冰川散热系统持续护航

    2022爆款:ROG魔霸6 冰川散热系统持续护航

    喜逢开学季,各大商家开始推出自己的新产品,进行打折促销活动。对于忠实的端游爱好者来说,能够拥有一款梦寐以求的笔记本电脑是一件十分开心的事。但是现在的
Top