项目 分布式 任务调度

package com.lixiaodao.task.quartz;


import java.text.ParseException;
import java.util.Map;


import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.quartz.CronTriggerBean;


import com.lixiaodao.utils.DateUtil;
import com.lixiaodao.utils.StrUtils;


public class LixiaodaoCronTriggerBean  extends CronTriggerBean{


private static final long serialVersionUID = 4625482606892589275L;

private static final Logger logger = LoggerFactory.getLogger(LixiaodaoCronTriggerBean.class);

private Map<String, String> cronExpressionMap;

private static final String TEN_YEAR_LATER = DateUtil.date2String(DateUtil.rollByYear(10), DateUtil.SDF_YYYY);
private static final String NOT_EXCUTE =  "0 0 0 1 1 ? " + TEN_YEAR_LATER; /**设定一个10年后的时间,只要服务器10年内重启,定时任务就不会执行**/


/**
* 重写 父类的方法
*/
@Override
public void setCronExpression(String cronExpression) throws ParseException {
String localIp = "";//TODO ..这里是获取本地ip 的一种方式,内网或者外网,都可以,只要统一就ok
cronExpression = "";
if(cronExpressionMap != null){
cronExpression = cronExpressionMap.get(localIp);
}
if(StrUtils.isBlank(cronExpression)){
cronExpression = NOT_EXCUTE;
}
logger.debug("{} 使用 定时 {}",new Object[]{localIp,cronExpression});
super.setCronExpression(cronExpression);
}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值