參考:
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();
}
}