1. 引入maven需要的包
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz-jobs</artifactId>
<version>2.2.1</version>
</dependency>
2. 創建配置文件
quartz.properties
org.quartz.scheduler.instanceName = MyScheduler
org.quartz.threadPool.threadCount = 3
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
job-setting.properties(自己添加的,不想用的話,可以不用)
#指定任務的週期【按每分鐘:60】【按每小時:3600】【按每天(24小時):86400】
run_cycle=20
#任務每次執行條數
frozen_process_num=2
3. 創建任務調度文件
import static org.quartz.JobBuilder.newJob;
import static org.quartz.SimpleScheduleBuilder.simpleSchedule;
import static org.quartz.TriggerBuilder.newTrigger;
import java.util.ResourceBundle;
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Class Description
*
* @author Luxiaoshuai
* @version
* @date 2015年8月25日 下午1:46:42
* @since
*/
public class QuartzApp {
private final static ResourceBundle RESOURCE = ResourceBundle.getBundle("job-setting");
private static final Logger logger = LoggerFactory.getLogger(QuartzApp.class);
/**
* @param args
*/
public static void main(String[] args) {
logger.info("--定時任務已經開始運行【運行間隔週期:"+RESOURCE.getString("run_cycle")+"秒】--");
System.out.println("--定時任務已經開始運行【運行週期:"+RESOURCE.getString("run_cycle")+"秒】--");
try {
// 獲取作業調度
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
// 作業調度開始
scheduler.start();
// 取得詳細的任務
JobDetail job = newJob(myQuartzJob.class).withIdentity("job1", "group1").build();
// 觸發器來控制執行的週期
Trigger trigger = newTrigger()
.withIdentity("trigger1", "group1")
.startNow()
.withSchedule(simpleSchedule()
.withIntervalInSeconds(Integer.parseInt(RESOURCE.getString("run_cycle")))//重複間隔
.repeatForever())//重複次數(永遠重複)【withRepeatCount(10)) 可以指定重複次數】
.build();
// 添加觸發器到任務調度
scheduler.scheduleJob(job, trigger);
// 調度關閉(永遠不關閉)
//scheduler.shutdown();
} catch (SchedulerException se) {
se.printStackTrace();
}
}
}
4. 創建任務
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
/**
* Class Description
*
* @author Luxiaoshuai
* @version
* @date 2015年8月27日 上午9:53:06
* @since
*/
public class myQuartzJob implements Job {
/**
*
* @param paramJobExecutionContext
* @throws JobExecutionException
*/
@Override
public void execute(JobExecutionContext paramJobExecutionContext)
throws JobExecutionException {
System.out.println("------myQuartzJob----");
}
}
5. 執行QuartzApp就可以咯!(下面是執行結果)
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
--定時任務已經開始運行【運行週期:2秒】--
------myQuartzJob----
------myQuartzJob----
------myQuartzJob----