quartz mysql 操作_Quartz定时任务 + 读取数据库动态配置周期

CronTriggerFactoryBean配置,由于要实现动态读取定时任务周期时间,所以我们要写一个类实现CronTriggerFactoryBean,类的内容如下:

public class InitCronTriggerFactoryBean extends CronTriggerFactoryBean implements Serializable {

private static final long serialVersionUID = 1L;

private SysParamServiceImpl sysParamServiceImpl;

private String key;

public void setKey(String key)

{

this.key = key;

}

public void setSysParamServiceImpl(SysParamServiceImpl sysParamServiceImpl)

{

this.sysParamServiceImpl = sysParamServiceImpl;

setCronExpression(getCronExpressionFromDB());

}

private String getCronExpressionFromDB()

{

if(StringUtils.isEmpty(key))

return "0 0 0/1 * * ?";

SysParam sysParam = new SysParam();

try

{

sysParam = sysParamServiceImpl.getNameByKey(key);

}

catch (Exception e)

{

e.printStackTrace();

}

if(sysParam != null && !StringUtils.isEmpty(sysParam.getParamValue()))

return sysParam.getParamValue();

return "0 0 0/1 * * ?";

}

}

简单说明一下:key是用来查询数据库配置的CronExpression表达式的查询条件,SysParamServiceImpl 是实现查询的类,这几个参数都要从spring配置的CronTriggerFactoryBean参数获取,注意,配置的时候,key值的配置要在SysParamServiceImpl 的配置之前,否则报空指针


版权声明:本文为weixin_39866265原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。