欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Quartz—触发器(SimpleTrigger&&CronTrigger)

程序员文章站 2022-07-06 10:06:40
SimpleTrigger SimpleTrigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1","group1") .startNow() .withSchedule(SimpleScheduleBuilder.simpleSchedule() .withIntervalInSeconds(2) //每两秒执....
  1. SimpleTrigger
 SimpleTrigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1","group1")
                .startNow()
                .withSchedule(SimpleScheduleBuilder.simpleSchedule()
                        .withIntervalInSeconds(2) //每两秒执行一次
                        .repeatForever()) //不限执行次数
                .endAt(new GregorianCalendar(2020,7,13,9,30,30).getTime())
                .build();
 // 1. 调度器 Scheduler
        Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();

        // 2. 触发器:描述时间规则,描述任务怎么触发
        SimpleTrigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1","group1")
                .startNow()
                .withSchedule(SimpleScheduleBuilder.simpleSchedule()
                        .withIntervalInSeconds(2) //每两秒执行一次
                        .repeatForever()) //不限执行次数
                .endAt(new GregorianCalendar(2020,7,13,9,30,30).getTime())
                .build();

        // 3. JobDetail 任务包装
        JobDetail jobDetail = JobBuilder.newJob(HelloJob.class).withIdentity("Job1","group1").build();

        // 4. 将JobDetail和触发器增加到调度器中
        scheduler.scheduleJob(jobDetail,trigger);

        // 5. 启动,调度器开始工作
        scheduler.start();

以一定的时间间隔(单位是毫秒)执行的任务。

  • 指定起始和截止时间(时间段)
  • 指定时间间隔,执行次数
  1. CronTrigger
 // 1. 调度器 Scheduler
        Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();

        // 2. 触发器:描述时间规则,描述任务怎么触发
        CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1","group1")
                .withSchedule(CronScheduleBuilder.cronSchedule("10 5 16 9 5 ?")) //秒 分 小时 日 月份 星期
                .build();

        // 3. JobDetail 任务包装
        JobDetail jobDetail = JobBuilder.newJob(HelloJob.class).withIdentity("Job1","group1").build();

        // 4. 将JobDetail和触发器增加到调度器中
        scheduler.scheduleJob(jobDetail,trigger);

        // 5. 启动,调度器开始工作
        scheduler.start();

表达式组成:“秒 分 时 日 月 星期几 年”,其中年是可选的,一般不指定。

位置 时间域 允许值 特殊值
1 0-59 ,-*/
2 分钟 0-59 ,-*/
3 小时 0-23 ,-*/
4 日期 1-31 ,-*?/LM
5 月份 1-12 ,-*/
6 星期 1-7(1是星期日) ,-*?/LM
7 年份(可选) ,-*/

详细请看=> Cron表达式

本文地址:https://blog.csdn.net/qq_41047771/article/details/107310801