因开发需要做一个队自动任务的开关,网上的搜索的结果都不是很满意,考虑到spring本身使用的是单例模式,所以在springMVC中开发是最适合的。
/**
* 启动、关闭自动通过
* @author yangxujia
* @throws Exception
* @state start为开始,stop为暂停
* @date 2015年11月13日上午11:58:17
*/
@RequestMapping("autoExaminePass")
@ResponseBody
public Map<String, Object> autoExaminePass(HttpServletRequest request,String operate) throws Exception{
Map<String ,Object> map = new HashMap<String, Object>();
//具体实现
Scheduler scheduler = QuartzScheduleMgr.getInstanceScheduler();
JobDetail job = newJob(HelloJob.class).withIdentity("job1", "group1").build();
Trigger trigger = newTrigger().withIdentity("trigger1", "group1")
.withSchedule(CronScheduleBuilder.cronSchedule("/5 * * * * ?"))
.startNow()
.build();
//如果任务未启动
if(!scheduler.isStarted()){
scheduler.start();
scheduler.scheduleJob(job, trigger);//设置调度相关的Job
}
if("start".equals(operate)) {
scheduler.resumeJob(job.getKey());
}
else if("stop".equals(operate)) {
scheduler.pauseJob(job.getKey());
}
map.put("code", Codes.SUCCESS);
return map;
}