packagecom.systimer;importjava.util.List;importjava.util.Map;importjavax.servlet.http.HttpServlet;importorg.apache.log4j.Logger;importorg.springframework.jdbc.core.JdbcTemplate;importorg.springframework.web.context.ContextLoader;importorg.springframework.web.context.WebApplicationContext;importcom.common.util.CommFun;importcom.common.util.QuartzManager;/*** 系统配置定时任务
*@authorronghui
**/
public class SystemTimerManage extendsHttpServlet{private static final long serialVersionUID = 1L;private static final Logger LOGGER = Logger.getLogger(SystemTimerManage.class);private static String SYSTEM_JOBGROUP = "SYSTEM_JOBGROUP";private static String SYSTEM_TRIGGERGROUP = "SYSTEM_TRIGGERGROUP";private static JdbcTemplate jdbcTemplate = null;
@Overridepublic voidinit() {
WebApplicationContext wac=ContextLoader.getCurrentWebApplicationContext();
jdbcTemplate= wac.getBean(JdbcTemplate.class);
List> list = jdbcTemplate.queryForList("select * from t_sys_timer where enable = 1");for(MapsysTimer:list){final String frequency = CommFun.nvl(sysTimer.get("FREQUENCY"));final String id = CommFun.nvl(sysTimer.get("ID"));final String name = CommFun.nvl(sysTimer.get("NAME"));
LOGGER.info("启动任务:"+name);
QuartzManager.addJob(id,SYSTEM_JOBGROUP,id,SYSTEM_TRIGGERGROUP,SystemJob.class, frequency,sysTimer);
}
}
@Overridepublic voiddestroy() {
LOGGER.info("停止所有任务");
QuartzManager.shutdownJobs();
}/*** 添加单个任务
*@param:
*@author: 戎辉
* @Time: 2020年4月16日 20:14:47*/
public static voidschedule(String id){
cancel(id);
Map sysTimer = jdbcTemplate.queryForMap("select * from t_sys_timer where id ="+id);final String frequency = CommFun.nvl(sysTimer.get("FREQUENCY"));final String name = CommFun.nvl(sysTimer.get("NAME"));
LOGGER.info("启动任务:"+name);
QuartzManager.addJob(id.toString(),SYSTEM_JOBGROUP,id.toString(),SYSTEM_TRIGGERGROUP,SystemJob.class, frequency,sysTimer);
}/*** 取消单个任务
*@param:
*@author: 戎辉
* @Time: 2020年4月16日 20:14:47*/
public static voidcancel(String id){try{
QuartzManager.removeJob(id,SYSTEM_JOBGROUP,id,SYSTEM_TRIGGERGROUP);
}catch(Exception e) {
e.printStackTrace();
}
}
}