public class SimpleJob implements Job{
private static Logger log = org.slf4j.LoggerFactory.getLogger(HelloJob.class);
public void execute(JobExecutionContext context) throws JobExecutionException {
JobKey key = context.getJobDetail().getKey();
log.info(key+"正在執行:"+new Date());
}
}
import static org.quartz.CronScheduleBuilder.cronSchedule;
import static org.quartz.TriggerBuilder.newTrigger;
import java.util.Date;
import org.quartz.CronTrigger;
import org.quartz.DateBuilder;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.SimpleTrigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import cn.panlei.quartz.example1.SimpleDemo;
public class SimpleTriggerDemo {
public void run() throws SchedulerException {
Logger log = LoggerFactory.getLogger(SimpleDemo.class);
/**
* 執行一次
*/
SchedulerFactory sf = new StdSchedulerFactory();
Scheduler sched = sf.getScheduler();
JobDetail job = JobBuilder.newJob(SimpleJob.class).withIdentity("job1", "group1").build();
Date startTime = DateBuilder.nextGivenSecondDate(null, 10);
SimpleTrigger trigger = (SimpleTrigger) TriggerBuilder.newTrigger().withIdentity("trigger1", "group1")
.startAt(startTime).build();
Date ft = sched.scheduleJob(job, trigger);
log.info(job.getKey() + " 執行時間 :" + ft + " 重複次數:" + trigger.getRepeatCount() + "次 , 每 "
+ trigger.getRepeatInterval() / 1000 + "s一次");
sched.start();
}
public static void main(String[] args) throws SchedulerException {
SimpleTriggerDemo demo = new SimpleTriggerDemo();
demo.run();
}
}
時間表達式格式:
格式: [秒] [分] [小時] [日] [月] [周] [年]
0 0 12 * * ? 每天12點觸發
0 15 10 ? * * 每天10點15分觸發
0 15 10 * * ? 每天10點15分觸發
0 15 10 * * ? * 每天10點15分觸發
0 15 10 * * ? 2005 2005年每天10點15分觸發
0 * 14 * * ? 每天下午的 2點到2點59分每分觸發
0 0/5 14 * * ? 每天下午的 2點到2點59分(整點開始,每隔5分觸發)
0 0/5 14,18 * * ? 每天下午的 18點到18點59分(整點開始,每隔5分觸發)
0 0-5 14 * * ? 每天下午的 2點到2點05分每分觸發
0 10,44 14 ? 3 WED 3月分每週三下午的 2點10分和2點44分觸發
0 15 10 ? * MON-FRI 從週一到週五每天上午的10點15分觸發
0 15 10 15 * ? 每月15號上午10點15分觸發
0 15 10 L * ? 每月最後一天的10點15分觸發
0 15 10 ? * 6L 每月最後一週的星期五的10點15分觸發
0 15 10 ? * 6L 2002-2005 從2002年到2005年每月最後一週的星期五的10點15分觸發
0 15 10 ? * 6#3 每月的第三週的星期五開始觸發
0 0 12 1/5 * ? 每月的第一個中午開始每隔5天觸發一次
0 11 11 11 11 ? 每年的11月11號 11點11分觸發(光棍節)