1.实现Job接口 –你要做什么事?
public class myJob implements Job {
@Autowired
private PileStateManager pileStateManager;
@Override
public void execute(JobExecutionContext arg0) throws JobExecutionException {
//判断以后工夫发送指定费率报文
int hours = new Date().getHours();
if (hours >= 7 && hours < 11) {
System.out.println("我是尖");
// buf.writeBytes(ByteConvertUtil.hourChargeTo2Bytes((int) cachePile.getOneRate()));
} else if (hours >= 19 && hours < 23) {
System.out.println("我是峰");
// buf.writeBytes(ByteConvertUtil.hourChargeTo2Bytes((int) cachePile.getTwoRate()));
} else if (hours >= 11 && hours < 19) {
System.out.println("我是平");
pileStateManager.UpdateChargeRate();
//buf.writeBytes(ByteConvertUtil.hourChargeTo2Bytes((int) cachePile.getThreeRate()));
} else {
System.out.println("我是谷");
// buf.writeBytes(ByteConvertUtil.hourChargeTo2Bytes((int) cachePile.getFourRate()));
}
}
2.Tirgger -触发器 –你什么时候去做
3.Scheduler -任务调度器 –你什么时候须要去做什么事
public class Test {
public void go() throws Exception {
// 首先,必须要获得一个Scheduler的援用
SchedulerFactory sf = new StdSchedulerFactory();
Scheduler sched = sf.getScheduler();
//jobs能够在scheduled的sched.start()办法前被调用
//job 1将每隔20秒执行一次
JobDetail job = newJob(myJob.class).withIdentity("job1", "group1").build();
CronTrigger trigger = newTrigger().withIdentity("trigger1", "group1").withSchedule(cronSchedule("0/20 * * * * ?")).build();
sched.scheduleJob(job, trigger);
// job 2将每2分钟执行一次(在该分钟的第15秒)
job = newJob(myJob.class).withIdentity("job2", "group1").build();
trigger = newTrigger().withIdentity("trigger2", "group1").withSchedule(cronSchedule("15 0/2 * * * ?")).build();
sched.scheduleJob(job, trigger);
// 开始执行,start()办法被调用后,计时器就开始工作,计时调度中容许放入N个Job
sched.start();
}
public static void main(String[] args) throws Exception {
Test test = new Test();
test.go();
}
}
发表回复