public class AwrQuartzUtil {
public static void addJob(DbList dbList) throws SchedulerException {
//将AwrJob绑定到jobdetail中,指定要做任务,即AwrJob。java的excute方法对应的内容
JobDetail jobDetail = JobBuilder.newJob(AwrJob.class)
.withIdentity("awrjob", "j" + dbList.getDbName()).build();
//传递数据 用JobExecutionContext获取 见AwrJob。java的excute方法
jobDetail.getJobDataMap().put("dblist", dbList);
// 创建trigger 设定schedule运行 规则 3600(一小时运行一次) -1运行无限次
SimpleTrigger simpleTrigger = TriggerBuilder
.newTrigger()
.withIdentity("awr", "t" + dbList.getDbName())
.withSchedule(
SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(Integer.valueOf(PropertiesUtil.getValueBykey("scheduletime")))
.withRepeatCount(-1)).build();
//将jobdetail和trigger绑定到scheduler当中 并启动
SchedulerFactory sf=new StdSchedulerFactory();
Scheduler scheduler=sf.getScheduler();
scheduler.scheduleJob(jobDetail, simpleTrigger);
scheduler.start();
}
public class AwrJob implements Job{
@Override
public void execute(JobExecutionContext context)
throws JobExecutionException {
DbList dblist=(DbList) context.getJobDetail().getJobDataMap().get("dblist");
AwrJobDetail awrJobDetail=new AwrJobDetail();
awrJobDetail.getAwr(dblist);
}
}