本帖最后由 wuwei丶 于 2018-8-23 15:10 编辑
导入quartz坐标
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz-jobs</artifactId>
</dependency>
定义一个Jobpublic class MyJob implements Job{ //任务被触发执行此方法 @Override public void execute(JobExecutionContext context) throws JobExecutionException { System.out.println("任务被调用了..."+new Date()); } }
编写定时任务程序
两种不同Trigger: 1)简单触发器 (SimpleTrigger) 简单地按照秒,分,小时进行重复执行。 2)日历触发器 (CronTrigger) 按照日历规则(日历表达式)进行重复执行
简单触发器定时任务 public class SimpleTriggerDemo { public static void main(String[] args) throws Exception { //1.创建Job对象 JobDetailjob = JobBuilder.newJob(MyJob.class).build(); //2.创建Trigger对象 Triggertrigger = TriggerBuilder .newTrigger() .withSchedule(SimpleScheduleBuilder.repeatSecondlyForTotalCount(5, 3)) .build(); //3.创建Scheduler对象 Schedulerscheduler = StdSchedulerFactory.getDefaultScheduler(); //关联Job和Trigger scheduler.scheduleJob(job, trigger); //4.启动任务 scheduler.start(); //手动停止任务 //17秒后停止任务 Thread.sleep(17000); scheduler.shutdown(); } }
日历触发器定时任务public class CronTriggerDemo { public static void main(String[] args) throws Exception { //1.创建Job对象 JobDetailjob = JobBuilder.newJob(MyJob.class).build(); //2.创建Trigger对象 Triggertrigger = TriggerBuilder .newTrigger() //日历表达式 .withSchedule(CronScheduleBuilder.cronSchedule("0 33 10 * * ? *") ) .build(); //3.创建Scheduler对象 Schedulerscheduler = StdSchedulerFactory.getDefaultScheduler(); //关联Job和Trigger scheduler.scheduleJob(job, trigger); //4.启动任务 scheduler.start(); /* //手动停止任务 //17秒后停止任务 Thread.sleep(17000); scheduler.shutdown();*/ } }
|