本篇主要介绍在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包。
其实使用定时器比较简单,不是很难!希望本篇对你有所帮助!