Quartz使用,让任务每隔两秒钟打印一次helloworld.
maven依赖
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.3</version>
</dependency>
1.编写具体job实现类,实现job接口execute方法,具体业务逻辑在此方法中编写。
2.创建一个JobDetail实例,将该实例与job实现类绑定
3.创建一个Trigger实例,定义该job何时触发
4.创建Scheduler实例,调度job和trigger
HelloJob .java
package com.quartz.demo1;
import org.quartz.*;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* Created by struggle on 2017/8/10.
*/
public class HelloJob implements Job {
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
//打印当前的执行时间,格式2017-01-01 00:00:00
//编写具体的业务逻辑
Date date=new Date();
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("Current Exec Time Is:"+format.format(date));
System.out.println("Hello World!");
JobKey key=jobExecutionContext.getJobDetail().getKey();
}
}
HelloScheduler.java
package com.quartz.demo1;
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* Created by struggle on 2017/8/10.
*/
public class HelloScheduler {
public static void main(String[] args) throws SchedulerException {
//创建一个JobDetail实例,将该实例与HelloJob Class绑定
JobDetail jobDetail= JobBuilder.newJob(HelloJob.class)
.withIdentity("myJob","group1")
.build();
//创建一个Trigger实例,定义该job立即执行,并且每个
//两秒钟重复执行一次,直到永远
Trigger trigger= TriggerBuilder.newTrigger()
.withIdentity("myTrigger","group1").startNow()
.withSchedule(
SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(2).repeatForever()).build();
//创建Scheduler实例
SchedulerFactory schedulerFactory=new StdSchedulerFactory();
Scheduler scheduler=schedulerFactory.getScheduler();
//打印当前时间,格式2017-01-01 00:00:00
Date date=new Date();
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("Current Time Is:"+format.format(date));
scheduler.start();
scheduler.scheduleJob(jobDetail,trigger);
}
}