package com.notallow.HelloQuartz;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
//工作任務
public class HelloeJob implements Job{
//類似於線程的 run方法
public void execute(JobExecutionContext arg0) throws JobExecutionException {
//打印當前時間
Date date=new Date();
SimpleDateFormat sf=new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
System.out.println(sf.format(date));
//編寫業務邏輯
System.out.println(“Hello world”);
}
}
//—————————————————————————
package com.notallow.HelloQuartz;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;
/**
* JobDetail 是由Builder 模式來創建的
* @author Administrator
*JobDetail and Trigger group name is not have relationship
*/
public class HelloSchedule {
public static void main(String[] args) throws SchedulerException {
// 創建 job Detail 實例,將該實例與HelloJob Class綁定 //所用身份 唯一標識 所屬小組
JobDetail jobDetail = JobBuilder.newJob(HelloeJob.class).withIdentity(“myJob”, “group”).build();
// 創建Trigger實例,觸發job去執行,定義該job 立即執行,並且每隔兩秒重複執行一次,直到永遠
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity("mytrigger", "group").startNow()
.withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(2).repeatForever()).build();//執行頻度
//startnow 立即執行 withIntervalInSeconds 間隔 秒數在 2秒內 repeatForever 重複到永遠
//創建Schedule 實例
SchedulerFactory sfact = new StdSchedulerFactory();
Scheduler scheduler = sfact.getScheduler();
scheduler.start();
//翻譯過來 工作時間表 jobDetail工作任務 trigger 時間表
scheduler.scheduleJob(jobDetail,trigger);
}
}
mvn pom.xml
org.quartz-scheduler
quartz
2.2.3