django-apscheduler “Run time of job was missed“ solution

2023-05-16

在 Django 中使用 django_apscheduler 实现定时任务, 发现报错如下:

Run time of job "9668_hack (trigger: interval[1:00:00], next run at: 2018-10-29 22:00:00 CST)" was missed by 0:01:47.387821
Run time of job "9668_index (trigger: interval[0:30:00], next run at: 2018-10-29 21:30:00 CST)" was missed by 0:01:47.392574

在这里插入图片描述

解决方案:
scheduler里增加一个参数:misfire_grace_time
这个参数可以通俗的理解为任务的超时容错配置,给executor一个超时时间,这个时间范围内,没有正常跑的还可以继续跑,直到跑了;要是该跑的还没跑完,就别再跑了。
这个参数的大小设置一般是在 job was missed by 0:01:47.402938 这里看,任务是在 1 分钟左右检测到丢失的,所以可以设置为 5 分钟,即 300s
检测到任务丢失的时间是在指定时间后的 1min,所以在 5min 里足以检测到丢失的任务再运行一次。

scheduler.add_job(
	my_job, 'cron', id='task_time',
	day_of_week='mon-fri', hour='18', minute='24', 
	misfire_grace_time=300
)

其他参数来辅助理解:

  • coalesce:当由于某种原因导致某个job积攒了好几次没有实际运行(比如说系统挂了5分钟后恢复,有一个任务是每分钟跑一次的,按道理说这5分钟内本来是“计划”运行5次的,但实际没有执行),如果coalesce为True,下次这个job被submit给executor时,只会执行1次,也就是最后这次,如果为False,那么会执行5次(不一定,因为还有其他条件,看后面misfire_grace_time的解释)
  • max_instance: 就是说同一个job同一时间最多有几个实例再跑,比如一个耗时10分钟的job,被指定每分钟运行1次,如果我们max_instance值为5,那么在第6~10分钟上,新的运行实例不会被执行,因为已经有5个实例在跑了
  • misfire_grace_time:设想和上述coalesce类似的场景,如果一个job本来14:00有一次执行,但是由于某种原因没有被调度上,现在14:01了,这个14:00的运行实例被提交时,会检查它预订运行的时间和当下时间的差值(这里是1分钟),大于我们设置的30秒限制,那么这个运行实例不会被执行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

django-apscheduler “Run time of job was missed“ solution 的相关文章

随机推荐

  • 【shell】批量修改文件前缀和后缀

    需求 做实验时需要对相片名称进行修改 xff0c 以递增的顺序 并且修改后缀 奈何网上找的脚本都不能用 xff0c 只有自己写一个 代码 span class token shebang important bin bash span sp
  • 【shell】录制操作

    用途 制作教学用途 使用方法 首先是录制 script t span class token operator span class token file descriptor important 2 span gt span timing
  • Apple Watch上的静音模式,免打扰模式和剧院模式之间的区别(以及何时使用每种模式)

    Since it was introduced the Apple Watch has gained a number of different modes but it s not immediately clear when to us
  • 【C++】STL-unodered_map

    文章目录 STL unodered map简介unordered map与map对比自定义key测试参考 STL unodered map 简介 unordered map 容器 xff0c 直译过来就是 34 无序 map 容器 34 的
  • Shell函数参数

    在shell中调用函数时 xff0c 可以向其传递参数 xff0c 其中常用的特殊变量如下表所示 xff1a 函数参数 含义 传递到脚本或函数的参数个数 n 1表示第一个参数 xff0c 2表示第二个参数 注意 xff0c 当n gt 61
  • Dockerfile

    Dockerfile Dockerfile是一种文本文件 xff0c 用于定义如何构建Docker镜像 它包含一系列的指令 xff0c 告诉Docker引擎如何在容器中构建和运行应用程序 Dockerfile指令分类 xff1a 基础镜像指
  • thonny中文版|python编辑

    由于人工智能的兴起 xff0c python语言成了最受欢迎的编程语言 xff0c 为此小编给广大新手用户带来了thonny编辑器 xff0c 这是一款相当优秀的python初学者专用编程学习工具 该软件基于python内置图形库tkint
  • 如何限制HTML中select标签option可见选项数目

    如何限制HTML中select标签option可见选项数目 在使用select标签的时候 xff0c 如果option选项太多 xff0c 会造成下拉列表变得很长 xff08 浏览器默认20条 xff09 如果想控制select中的opti
  • 如何解决win7休眠后自动唤醒的现象

    http jingyan baidu com article ca00d56c50e598e99eebcfea html
  • java实现x 的平方根

    class Solution public int mySqrt int x int left 61 1 int right 61 x int mid while left lt 61 right mid 61 left 43 right
  • 什么是字节对齐?字节对齐与位域的计算

    目录 1 什么是字节对齐 xff1f 为什么要字节对齐 xff1f 2 字节对齐的规则3 字节对齐的数值4 位域5 位域的填充 1 什么是字节对齐 xff1f 为什么要字节对齐 xff1f 字节对齐也称为字节填充 xff0c 它是一种牺牲空
  • Cordova打包流程(其中一种简单的方法)

    1 新建项目 cordova create carder 文件名字 com xtzn carder leader 项目名称 2 cd carder xff08 进入文件 xff09 3 运行 cordova platform add and
  • Could not found property service.vgroup_mapping.my_test_tx_group

    seat本地服务中的 file conf 和regeist conf 配置文件 与项目中的 file conf 和regeist conf 中对应的文件要一致 项目中的 regeist conf 本地服务中的 registry conf 上
  • 获取Windows 10上文件资源管理器的帮助

    Windows 10 no longer has built in help for File Explorer as Windows 7 does Microsoft makes you search the web for inform
  • 餐饮店实现扫码点餐、语音播报、自动打印厨房单结账单

    使用场景 xff1a 餐饮店在桌子上张贴二维码 小程序并引导消费者扫描点餐 xff0c 点餐后收银台会有声音提醒 xff1a 三号桌下单了 xff01 三号桌下单了 xff01 xff0c 服务员打开手机确认订单 xff0c 如果消费者需求
  • 关于electron报read ECONNRESET解决方案

    关于electron报read ECONNRESET解决方案 问题解决方法 问题 D APP gui gt npm install save dev electron npm ERR code 1 npm ERR path D APP gu
  • spring配置文件

    文章目录 1 Spring程序开发步骤2 Spring配置文件2 1 Bean标签基本配置2 2 Bean标签范围配置2 2 Bean生命周期配置2 3 Bean实例化三种方式2 4 Bean的依赖注入分析2 5 依赖注入概念2 6 Bea
  • SpringMVC学习【执行流程-搭建和使用】

    一 xff1a SpringMVC执行流程 1 一共有四大组件 中央管理器 处理器映射器 处理器适配器 视图解析器 2 描述流程 用户向服务端发送一次请求 xff0c 这个请求会先到中央控制器DispatcherServletDispatc
  • 多线程任务超时的处理机制

    使用Thread join long million 方法 xff0c 参数是毫秒 代码 amp 解析如下 xff1a 解析 xff1a 原本有t1和t2两个线程 xff0c 根据实例化new Task xff08 xff09 时t1传入了
  • django-apscheduler “Run time of job was missed“ solution

    在 Django 中使用 django apscheduler 实现定时任务 发现报错如下 Run span class token function time span of job span class token string 34