1.6-Quartz大哥(Trigger分支)

一.SimpleTrigger

  • 作用:
    在某一指定时间段内执行一次作业任务,或者在指定的时间间隔内多次执行作业任务.
    默认情况下就是SimpleTrigger.
 //创建一个Trigger实例,用来触发Job来执行的
        //获取距离当前时间3秒后的时间
        Date startDate = new Date();
        startDate.setTime(startDate.getTime() + 3000);
        //获取距离当前6s后的时间
        Date endDate = new Date();
        endDate.setTime(endDate.getTime() + 6000);
        
        //立即执行,并且每隔两秒执行一次
        Trigger trigger = TriggerBuilder.newTrigger()
                .withIdentity("myTrigger", "TriggerGroup1")
                .startAt(startDate)
                .endAt(endDate)
                .withSchedule(SimpleScheduleBuilder.simpleSchedule()
                        .withIntervalInSeconds(2)
                        .repeatForever())
                .build();
  • 注意点:
  1. withRepeatCount这个参数可以是0,正整数或是SimpleTrigger.REPEAT_INDEFINITELY常量值.
  2. 重复执行间隔必须为0或者长整数.
    3.一旦指定了endTime参数,那么会覆盖重复次数参数的效果.

二.CronTrigger

  • 作用:
    基于日历的作业调度器,而不是像SimpleTrigger那样精确指定时间间隔,比SimpleTrigger更常用.
1.Cron表达式
  • 用于配置CronTrigger实例.是由7个子表达式组成的字符串,描述了时间表的详细信息.格式:秒 分 小时 日 月 周 年,注意[]和[]之间有空格.
  • Cron表达式特殊字符意义对应表
字段 是否必填 允许值 允许特殊字符
0~59 , - * /
0~59 , - * /
小时 0~23 , - * /
1~31 , - * ? / L W C
1~12 或者 JAN-DEC , - * /
1~7 或者 SUN-SAT , - * ? / L C #
empty,1970~2099 , - * /
  • 符号的意思
    ,表示或的关系;
    -表示至,between的意思.
    *表示每的意思,per的意思.
    /表示每隔多久触发的意思.
    ?表示不用管的意思.
    #表示第几周
    L表示最后第意思,last;注意星期是周日到周六,最后一天是周六,7是星期六.
    W表示离指定日期最近的那个工作日.LW可以一起使用.
  • 举例
    每天的14点整至15点59分55秒,以及18点整至18点59分55秒,每隔5s触发一次.
    0/5 * 14,18 * * ?
2.提示

Cron表达式生成器,可以直接百度

你可能感兴趣的:(1.6-Quartz大哥(Trigger分支))