参考:
https://my.oschina.net/Barudisshu/blog/294272
http://www.quartz-scheduler.org/documentation/quartz-2.2.x/tutorials/tutorial-lesson-06.html
概念性的内容请查看上面链接,我这里不再赘述。只是实现一个小例子。
1、引入jar包
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.1</version>
</dependency>
package quartz;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class TestJob implements Job {
SimpleDateFormat DateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d = new Date();
String returnstr = DateFormat.format(d);
public void execute(JobExecutionContext arg0) throws JobExecutionException {
// TODO Auto-generated method stub
System.out.println("Hello World! - " + new Date());
}
}
3、启动类
package quartz;
import static org.quartz.CronScheduleBuilder.cronSchedule;
import static org.quartz.TriggerBuilder.newTrigger;
import java.text.ParseException;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.Trigger;
import org.quartz.impl.StdSchedulerFactory;
/**
* Quartz中提供了两种触发器,分别是CronTrigger和SimpleTrigger。
* 具体用法参考参考文章
*
*/
public class QuartzTest {
public static void main(String args[]) throws SchedulerException, ParseException {
JobDetail jobDetail= JobBuilder.newJob(TestJob.class)
.withIdentity("testJob_1","group_1")
.build();
//SimpleTrigger
// Trigger trigger= TriggerBuilder
// .newTrigger()
// .withIdentity("trigger_1","group_1")
// .withSchedule(SimpleScheduleBuilder.simpleSchedule()
// .withIntervalInSeconds(10) //时间间隔
// .withRepeatCount(5) //重复次数(将执行6次)
// )
// .build();
//CronTrigger
Trigger trigger = newTrigger()
.withIdentity("trigger_1", "group1")
.withSchedule(cronSchedule("0/3 0/2 8-17 * * ?"))
// .forJob("testJob_1", "group1")
.build();
SchedulerFactory sf = new StdSchedulerFactory();
Scheduler sched = sf.getScheduler();
sched.scheduleJob(jobDetail,trigger);
sched.start();
}
}