本篇主要介紹在Dorado中如何使用定時器。
1.先實現InitializingBean接口,爲BillJobPR類添加定時任務,QuartzManager只是個工具類,下面也提供了addJob方法。
@Component
public class InitServlet implements InitializingBean{
//定時每天8-20每半時執行一次
public static final String billTime = "0 0/30 8-20 * * ?";
//public static final String billTime = "0 45 16 * * ?";
@Override
public void afterPropertiesSet() throws Exception {
//獲取賬單定時任務
QuartzManager.addJob("BillJobPR_Name", BillJobPR.class.getName(), billTime);
}
}
public static void addJob(String jobName, String jobClass, String time) {
try {
Scheduler sched = gSchedulerFactory.getScheduler();
JobDetail jobDetail = new JobDetail(jobName, JOB_GROUP_NAME, Class.forName(jobClass));// 任務名,任務組,任務執行類
// 觸發器
CronTrigger trigger = new CronTrigger(jobName, TRIGGER_GROUP_NAME);// 觸發器名,觸發器組
trigger.setCronExpression(time);// 觸發器時間設定
sched.scheduleJob(jobDetail, trigger);
// 啓動
if (!sched.isShutdown()){
sched.start();
}
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
2.實現Job接口,在execute方法類,寫自己的業務邏輯處理,findOrder是我業務邏輯處理的方法名,具體業務邏輯就不展示了。
@Component
public class BillJobPR extends BaseDao implements Job {
@Override
public void execute(JobExecutionContext arg0) throws JobExecutionException {
try {
IBillJob iBillJob = ContextHolder.getBean("BillJobServiceImpl");
iBillJob.findOrder();
} catch (Exception e) {
e.printStackTrace();
}
}
}
3.最後別忘了導入相關jar包。
其實使用定時器比較簡單,不是很難!希望本篇對你有所幫助!