cron表示式(Quartz中的使用)
阿新 • • 發佈:2019-01-05
//獲取排程器 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時如不存在則忽略不觸發