package com.sohu.cache.web.controller; import java.util.List; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.sohu.cache.entity.TriggerInfo; import com.sohu.cache.schedule.SchedulerCenter; import org.apache.commons.lang.StringUtils; import org.quartz.TriggerKey; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import com.sohu.cache.web.enums.SuccessEnum; /** * quartz管理test * * @author leifu * @Time 2014年7月4日 */ @Controller @RequestMapping("manage/quartz") public class QuartzManageController extends BaseController { @Resource private SchedulerCenter schedulerCenter; @RequestMapping(value = "/list") public ModelAndView doQuartzList(HttpServletRequest request, HttpServletResponse response, Model model) { String query = request.getParameter("query"); List<TriggerInfo> triggerList; if (StringUtils.isBlank(query)) { triggerList = schedulerCenter.getAllTriggers(); query = ""; } else { triggerList = schedulerCenter.getTriggersByNameOrGroup(query); } model.addAttribute("triggerList", triggerList); model.addAttribute("quartzActive", SuccessEnum.SUCCESS.value()); model.addAttribute("query", query); return new ModelAndView("manage/quartz/list"); } @RequestMapping(value = "/pause") public String pause(HttpServletRequest request, HttpServletResponse response, Model model) { String name = request.getParameter("name"); String group = request.getParameter("group"); if (StringUtils.isNotBlank(name) || StringUtils.isNotBlank(group)) { schedulerCenter.pauseTrigger(new TriggerKey(name, group)); } return "redirect:/manage/quartz/list"; } @RequestMapping(value = "/resume") public String resume(HttpServletRequest request, HttpServletResponse response, Model model) { String name = request.getParameter("name"); String group = request.getParameter("group"); if (StringUtils.isNotBlank(name) || StringUtils.isNotBlank(group)) { schedulerCenter.resumeTrigger(new TriggerKey(name, group)); } return "redirect:/manage/quartz/list"; } @RequestMapping(value = "/remove") public String remove(HttpServletRequest request, HttpServletResponse response, Model model) { String name = request.getParameter("name"); String group = request.getParameter("group"); if (StringUtils.isNotBlank(name) || StringUtils.isNotBlank(group)) { schedulerCenter.unscheduleJob(new TriggerKey(name, group)); } return "redirect:/manage/quartz/list"; } }