使用RedisTemplate实现简易分布式定时任务锁,即多节点只有一个节点执行定时任务
1
2
3
4
5
6
7
8
9
|
Boolean locked = redisTemplate.opsForValue()
.setIfAbsent(LOCK_KEY,"LOCKED",LOCK_EXPIRE_TIME,TimeUnit.MINUTES);
if(Boolean.TRUE.equals(locked)){
logger.info("获取到锁,开始执行定时任务");
//定时任务代码
}
else {
logger.info("其他节点正在执行定时任务,本节点跳过执行");
}
|