Quartz-CronTrigger

  1.  CronTrigger 是什么?
    Cron 是Linux下的一个定时器,功能很强大,但是表达式更为复杂
    CronTrigger 就是用 Cron 表达式来安排触发时间和次数的。

    因为Cron 特别复杂,如果以前接触过,可以按照Cron表达式来做触发器,没有接触过,还是用SimpleTrigger吧。。。
  2.  TestQuartz
    这个Cron 表达式就表示每隔2秒执行一次
    0/2 * * * * ?
    如图所示,每隔2秒执行一次。
    为什么这个表达式就是这个效果呢?黑人问号脸? 看下一步:理解Cron

    public class TestQuartz {
        public static void main(String[] args) throws Exception{
                Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
       
                Date startTime = DateBuilder.nextGivenSecondDate(null, 8);
      
                JobDetail job = newJob(MailJob.class).withIdentity("mailJob", "mailGroup").build();
      
                CronTrigger trigger = newTrigger().withIdentity("trigger1", "group1").withSchedule(cronSchedule("0/2 * * * * ?"))
                        .build();
      
                // schedule it to run!
                Date ft = scheduler.scheduleJob(job, trigger);
                 
                System.out.println("使用的Cron表达式是:"+trigger.getCronExpression());
    //            System.out.printf("%s 这个任务会在 %s 准时开始运行,累计运行%d次,间隔时间是%d毫秒%n", job.getKey(), ft.toLocaleString(), trigger.getRepeatCount()+1, trigger.getRepeatInterval());
                 
                scheduler.start();
                   
                //等待200秒,让前面的任务都执行完了之后,再关闭调度器
                Thread.sleep(200000);
                scheduler.shutdown(true);
        }
    }
  3. 理解Cron
    0/2 * * * * ?
    由7个部分组成,每个部分就如图所示分别对应秒 分 一直到年

    星号():可用在所有字段中,表示对应时间域的每一个时刻,例如, 在分钟字段时,表示“每分钟”;
    问号(?):该字符只在日期和星期字段中使用,它通常指定为“无意义的值”,相当于点位符;
    减号(-):表达一个范围,如在小时字段中使用“10-12”,则表示从10到12点,即10,11,12;
    逗号(,):表达一个列表值,如在星期字段中使用“MON,WED,FRI”,则表示星期一,星期三和星期五;

    这里有个Cron表达式生成工具,可以参考一下: http://cron.qqe2.com/
  4.  Cron 表达式举例






  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值