1. 程式人生 > >cron表示式(Quartz中的使用)

cron表示式(Quartz中的使用)

//獲取排程器
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
//建立觸發器
Trigger trigger = TriggerBuilder.newTrigger().withSchedule(
	CronScheduleBuilder.cronSchedule("放置cron表示式處");
).withIdentity("name", "group1").startNow().build();

JobDetail jobDetail = JobBuilder.newJob(TestJob.class).withIdentity("job1", "group1").usingJobData("name", "張三").build();
scheduler.scheduleJob(jobDetail, trigger);
scheduler.start();
System.in.read();

cron表示式有7位,其中第七位即最後一位為可選(六位的表示式必然是少了年份)
順序為:秒 分鐘 小時 ⽇期 ⽉份 星期 年份

其中日期與星期互相影響,不能同時出現:未選擇使用的欄位應使用’?'佔位符

  • “*”:對應時間域的每⼀個時刻
  • “-”:表達一個範圍
  • “,”:表達⼀個列表值 eg:“1,3,4”
  • “/”:表達⼀個自增列表
    ----x/y,x為起始值,y為增量步⻓值。----1/5表達:1,6,11,16,21,26,31…
  • L:該字元只在⽇期和星期欄位中使⽤。在⽇期欄位中,表⽰這個⽉ 份的最後⼀天;在星期中,表⽰星期六,等同於7
    如果L出現在星期欄位⾥,而且在前⾯有⼀個數值X,則表⽰“這個⽉的最後X天”。eg:6L表⽰該⽉的最後星期五
  • W:該字元只能出現在⽇期欄位⾥,是對前導⽇期的修飾,表⽰離該⽇期最近的⼯作⽇。注意關聯的匹配⽇期不能夠跨⽉
  • LW組合:當⽉的最後⼀個⼯作⽇
  • “#”:星期欄位中使⽤,表⽰當⽉某個⼯作⽇。eg:6#3表⽰當⽉的第三個星期五(6表⽰星期五,#3表⽰當前的第三個)。#5時如不存在則忽略不觸發