public void executeTask() {
String lockKey = "task_lock_key";
String lockValue = UUID.randomUUID().toString();
long lockTimeout = 60; // 锁超时时间60秒
// 尝试获取分布式锁
if (redisTemplate.opsForValue().setIfAbsent(lockKey, lockValue, lockTimeout, TimeUnit.SECONDS)) {
try {
// 执行任务逻辑
doTask();
} finally {
// 释放锁,确保即使任务执行异常也能释放锁
if (lockValue.equals(redisTemplate.opsForValue().get(lockKey))) {
redisTemplate.delete(lockKey);
}
}
} else {
// 其他实例已获取锁,本次任务不执行或等待下次调度
}
}
private void doTask() {
// 实际的任务执行代码
}
微服务定时任务 重复执行
原创
©著作权归作者所有:来自51CTO博客作者mb650996349c158的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:java excel转word
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Django使用Celery+Redis执行异步和定时任务
Django中使用celery和redis实现异步任务处理。
redis django 异步任务 celery python -
设置定时任务,别再写死了!动态定时任务真的太爽了!
设置定时任务,别再写死了!动态定时任务真的太爽了!
spring 触发器 cron表达式 -
微服务定时任务并发 微服务中的定时任务
Spring Boot详解(3)定时任务mp.weixin.qq.com 定时任务:我们在项目中,会使用定时任务去执行一些业务上或者是项目数据的备份和更新的操作,那么我们在微服务架构中怎么使用定时任务呢?又有多少种定时任务的实现方式呢?而定时任务的原理又是什么呢? 1. Timer 和 ScheduledExecutorServiceTimer是jdk中提供的一个定
微服务定时任务并发 sigar springboot springboot是单线程 定时任务 触发器 -
怎样在IDEA中重新配置JAVA路径
IDEA是我用的挺多的一款java代码编辑工具,对于刚接触这款软件的新手来说,配置项目是很麻烦的了,更别说配置服务器Tomcat了,那么通过我的教程大家一定觉得配置IDEA项目也是很轻松的事了。 工具/原料 电脑
怎样在IDEA中重新配置JAVA路径 java 开发工具 jar 服务器