给quartz对job、trigger的一些操做增长rest apiapi
@RequestMapping(value = "/trigger/keys",method = RequestMethod.GET) public Set<TriggerKey> getTriggerKeys(@RequestParam(required = false) String group) throws SchedulerException { if(StringUtils.isBlank(group)){ return scheduler.getTriggerKeys(GroupMatcher.anyTriggerGroup()); } return scheduler.getTriggerKeys(GroupMatcher.triggerGroupEquals(group)); } @RequestMapping(value = "/trigger",method = RequestMethod.GET) public Trigger getTriggerDetail(@RequestParam(required = false) String group, @RequestParam String name) throws SchedulerException { if(StringUtils.isBlank(group)){ return scheduler.getTrigger(TriggerKey.triggerKey(name)); } return scheduler.getTrigger(TriggerKey.triggerKey(name,group)); } @RequestMapping(value = "/trigger/pause",method = RequestMethod.POST) public void pauseTrigger(@RequestParam(required = false) String group, @RequestParam String name) throws SchedulerException { if(StringUtils.isBlank(group)){ scheduler.pauseTrigger(TriggerKey.triggerKey(name)); } scheduler.pauseTrigger(TriggerKey.triggerKey(name,group)); } @RequestMapping(value = "/trigger/resume",method = RequestMethod.POST) public void resumeTrigger(@RequestParam(required = false) String group, @RequestParam String name) throws SchedulerException { if(StringUtils.isBlank(group)){ scheduler.resumeTrigger(TriggerKey.triggerKey(name)); } scheduler.resumeTrigger(TriggerKey.triggerKey(name,group)); } @RequestMapping(value = "/trigger",method = RequestMethod.DELETE) public void deleteTrigger(@RequestParam(required = false) String group, @RequestParam String name) throws SchedulerException { TriggerKey triggerKey = null; if(StringUtils.isBlank(group)){ triggerKey = TriggerKey.triggerKey(name); }else{ triggerKey = TriggerKey.triggerKey(name,group); } scheduler.pauseTrigger(triggerKey); scheduler.unscheduleJob(triggerKey); //only remove trigger }
@RequestMapping(value = "/job/keys",method = RequestMethod.GET) public Set<JobKey> getJobKeys(@RequestParam(required = false) String group) throws SchedulerException { if(StringUtils.isBlank(group)){ return scheduler.getJobKeys(GroupMatcher.anyJobGroup()); } return scheduler.getJobKeys(GroupMatcher.jobGroupEquals(group)); } @RequestMapping(value = "/job",method = RequestMethod.GET) public JobDetail getJobDetail(@RequestParam(required = false) String group, @RequestParam String name) throws SchedulerException { if(StringUtils.isBlank(group)){ return scheduler.getJobDetail(JobKey.jobKey(name)); } return scheduler.getJobDetail(JobKey.jobKey(name,group)); } @RequestMapping(value = "/job",method = RequestMethod.DELETE) public void deleteJob(@RequestParam String group, @RequestParam String name) throws SchedulerException { scheduler.deleteJob(JobKey.jobKey(name, group)); }
基本的操做均可以使用rest来知足,可是原生的api没有对job以及trigger的分页处理,因此当数据量的状况下,查询就比较麻烦。有待对原生的查询进行扩展。app