• quartz入门


    quartz任务框架有两个重要对象,作业JobDetail和触发器Trigger,它们是多对多的关系

    作业

    JobDetail

    JobDetail jobDetail = JobBuilder.newJob(HelloQuartzJob.class)  
                    .withIdentity("testJob_1", "group_1")  
                    .build(); 

    触发器

    Trigger,Quartz有两大触发器,SimpleTrigger和CronTrigger

    Trigger trigger = TriggerBuilder.newTrigger()//创建一个新的TriggerBuilder来规范一个触发器  
                    .withIdentity("trigger_1", "group_1")//给触发器一个名字和组名  
    //              .startNow()//立即执行  
                    .startAt(runTime)//设置触发开始的时间  
                    .withSchedule  
                    (  
                        SimpleScheduleBuilder.simpleSchedule()  
                        .withIntervalInSeconds(10)//时间间隔  
                        .withRepeatCount(5)//重复次数(将执行6次)  
                    )  
                    .build();//产生触发器  
    //

     String cronExpression = "30/5 * * * * ?"; // 每分钟的30s起,每5s触发任务        

     CronTrigger cronTrigger = new CronTriggerImpl("cronTrigger", 

     Scheduler.DEFAULT_GROUP, cronExpression);

    cron有6个必要组件和1个可选组件:年(可选)-星期-月-日-时-分-秒。

    misfire特性

    在 Quartz 应用中,misfired job 是经常遇到的情况。一般来说,下面这些原因可能造成 misfired job:

    1)系统因为某些原因被重启。在系统关闭到重新启动之间的一段时间里,可能有些任务会被 misfire;

    2)Trigger 被暂停(suspend)的一段时间里,有些任务可能会被 misfire;

    3)线程池中所有线程都被占用,导致任务无法被触发执行,造成 misfire;

    4)有状态任务在下次触发时间到达时,上次执行还没有结束;

    为了处理 misfired job,Quartz 中为 trigger 定义了处理策略,主要有下面两种:

    MISFIRE_INSTRUCTION_FIRE_ONCE_NOW:针对 misfired job 马上执行一次;

    MISFIRE_INSTRUCTION_DO_NOTHING:忽略 misfired job,等待下次触发;

    建议读者在应用开发中,将该设置作为可配置选项,使得用户可以在使用过程中,针对已经添加的 tirgger 动态配置该选项。

  • 相关阅读:
    20220528 08:00:01
    208. Implement Trie (Prefix Tree) (Rust version)
    【mq】从零开始实现 mq12消息的批量发送与回执
    【mq】从零开始实现 mq08配置优化 fluent
    【mq】从零开始实现 mq13注册鉴权 auth
    【mq】从零开始实现 mq10消费者拉取消息回执 pull message ack
    【mq】从零开始实现 mq09消费者拉取消息 pull message
    【mq】从零开始实现 mq11消费者消息回执添加分组信息 pull message ack groupName
    学习随笔
    算法随笔
  • 原文地址:https://www.cnblogs.com/liluredhat/p/6757829.html
Copyright © 2020-2023  润新知