• Quartz.Net—MisFire



    什么是misfire

     misfire就是哑火,就是trigger没有得到正常的触发。

    1、所有的threadpool都在工作,而且工作时间很长,导致trigger没有threadpool去执行。

    2、schedule挂掉有恢复。。

    3、错过的执行

    misfire阈值

    1、ramjobstore  默认  5秒

    2、dbjobstore   默认 60秒

    MisFire策略

     1、错过的执行,发上执行,后面的调度正常执行。

    2、错过的合并执行一次,后面的正常执行

    3、忽略这种调度,后面的正常执行

    上面三点是核心策略

    SimpleTrigger处理哑火

    场景:

    1am开始执行,每小时执行一次,连续执行10次。但是开始时间是3点半。

    已经错过了三次执行。

    关键词介绍:

    remain:剩余       剩余多少次

    Exist:存在         一共多少次  

    Now:马上开始

    Next:下一个时间点 开始

    NowWithRemainingCount:马上开始   使用剩余的次数

    NowWithExistingCount:马上开始   使用总次数

    NextWithRemainingCount:下一个时间点开始   使用剩余次数

    NextWithExistingCount:下一个时间点开始   使用总次数

    方法介绍

    1、WithMisfireHandlingInstructionNextWithExistingCount

    下一次执行时间是4点,然后连续执行10次,到14点。

      4:00              +10次                     =14:00

     2、WithMisfireHandlingInstructionNextWithRemainingCount

      4:00              +7次                        =11:00

    3、WithMisfireHandlingInstructionNowWithExistingCount

       3:30              +10次                     =13:30

    4、WithMisfireHandlingInstructionNowWithRemainingCount

      3:30               +7次                       =10:30

    5、WithMisfireHandlingInstructionIgnoreMisfires

    错过的执行,都会 马上执行,后面的调度正常执行。

    6、WithMisfireHandlingInstructionFireNow

     现在马上执行,原来错过的不执行。

    CronTrigger处理哑火

     1、WithMisfireHandlingInstructionIgnoreMisfires

    错过的马上执行掉,后续正常执行

    2、WithMisfireHandlingInstructionFireAndProceed

    错过的合并为一次执行,后续正常执行。

    3、WithMisfireHandlingInstructionDoNothing

    错过的不管了,剩下的按正常执行。

  • 相关阅读:
    powerdesigner 使用心得 comment、name
    idea 从git上checkout项目下来,project没有文件目录结构
    关于freemarker 空变量的接收以及类型转换 笔记
    关于indexof和substring经常记不住的点
    Intellij IDEA快捷键
    oracle 修改服务端字符集编码
    个人作业——软件工程实践总结&个人技术博客
    如何设置标签云
    前端框架的部署
    个人作业——软件评测
  • 原文地址:https://www.cnblogs.com/yanglang/p/9626245.html
Copyright © 2020-2023  润新知