java定时器动态触发_Java 利用反射定义动态定时器

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();

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值