首页>代码>spring整合java quartz实现动态定时任务的前台网页配置与管理>/quartz-spring/src/com/snailxr/base/task/controller/JobTaskController.java
package com.snailxr.base.task.controller; import java.lang.reflect.Method; import java.util.List; import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.quartz.CronScheduleBuilder; import org.quartz.SchedulerException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.snailxr.base.support.RetObj; import com.snailxr.base.support.spring.SpringUtils; import com.snailxr.base.task.domain.ScheduleJob; import com.snailxr.base.task.service.JobTaskService; @Controller @RequestMapping("/task") public class JobTaskController { // 日志记录器 public final Logger log = Logger.getLogger(this.getClass()); @Autowired private JobTaskService taskService; @RequestMapping("taskList") public String taskList(HttpServletRequest request) { List<ScheduleJob> taskList = taskService.getAllTask(); request.setAttribute("taskList", taskList); return "base/task/taskList"; } @RequestMapping("add") @ResponseBody public RetObj taskList(HttpServletRequest request, ScheduleJob scheduleJob) { RetObj retObj = new RetObj(); retObj.setFlag(false); try { CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(scheduleJob.getCronExpression()); } catch (Exception e) { retObj.setMsg("cron表达式有误,不能被解析!"); return retObj; } Object obj = null; try { if (StringUtils.isNotBlank(scheduleJob.getSpringId())) { obj = SpringUtils.getBean(scheduleJob.getSpringId()); } else { Class clazz = Class.forName(scheduleJob.getBeanClass()); obj = clazz.newInstance(); } } catch (Exception e) { // do nothing......... } if (obj == null) { retObj.setMsg("未找到目标类!"); return retObj; } else { Class clazz = obj.getClass(); Method method = null; try { method = clazz.getMethod(scheduleJob.getMethodName(), null); } catch (Exception e) { // do nothing..... } if (method == null) { retObj.setMsg("未找到目标方法!"); return retObj; } } try { taskService.addTask(scheduleJob); } catch (Exception e) { e.printStackTrace(); retObj.setFlag(false); retObj.setMsg("保存失败,检查 name group 组合是否有重复!"); return retObj; } retObj.setFlag(true); return retObj; } @RequestMapping("changeJobStatus") @ResponseBody public RetObj changeJobStatus(HttpServletRequest request, Long jobId, String cmd) { RetObj retObj = new RetObj(); retObj.setFlag(false); try { taskService.changeStatus(jobId, cmd); } catch (SchedulerException e) { log.error(e.getMessage(), e); retObj.setMsg("任务状态改变失败!"); return retObj; } retObj.setFlag(true); return retObj; } @RequestMapping("updateCron") @ResponseBody public RetObj updateCron(HttpServletRequest request, Long jobId, String cron) { RetObj retObj = new RetObj(); retObj.setFlag(false); try { CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(cron); } catch (Exception e) { retObj.setMsg("cron表达式有误,不能被解析!"); return retObj; } try { taskService.updateCron(jobId, cron); } catch (SchedulerException e) { retObj.setMsg("cron更新失败!"); return retObj; } retObj.setFlag(true); return retObj; } }
最近下载更多
1358849392 LV21
2022年11月23日
406912941 LV3
2022年9月19日
liangliang1001 LV2
2022年7月14日
李海洋 LV12
2022年5月16日
~城 LV1
2021年10月7日
lcj166 LV5
2021年8月18日
a1w4fsdaf LV9
2021年7月11日
weijianguo LV7
2021年6月4日
安东尼online LV11
2020年11月18日
yinxiu123 LV4
2020年9月10日
最近浏览更多
zjjhzjb LV14
3月20日
忧麦紫 LV18
3月15日
百里守寡 LV5
2月5日
tyz20001102
2023年5月4日
暂无贡献等级
Oxygeni LV6
2023年4月29日
Sunsi12345 LV8
2022年12月2日
wangyunhao LV10
2022年12月1日
1358849392 LV21
2022年11月23日
微信网友_6221949417279488
2022年11月16日
暂无贡献等级
406912941 LV3
2022年9月19日