private final StringRedisTemplate stringRedisTemplate;
private final static String EXPORT_LOCK_KEY = "metrics_assess_export_lock";
private static final long LOCK_EXPIRE_TIME = 300 * 1000; // 锁过期时间,单位毫秒
// 尝试获取锁
Boolean lock = stringRedisTemplate.opsForValue().setIfAbsent(EXPORT_LOCK_KEY, "locked", LOCK_EXPIRE_TIME, TimeUnit.MILLISECONDS);
if (Boolean.TRUE.equals(lock)) {
try {
// 执行任务
} finally {
// 释放锁
stringRedisTemplate.delete(EXPORT_LOCK_KEY);
}
} else {
// 如果未能获取到锁,则告知用户导出任务已经在进行中
throw new RuntimeException("有导出任务正在进行中,请稍后在重新常识!");
}
redis 锁判断任务是否存在
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 场景 爬虫时判断某个URL是否已经被爬取过 黑名单过滤 防止缓存穿透 ... 实现原理 定义一个长度为m的bit型...
- 2023-06-11:redis中,如何在100个亿URL中快速判断某URL是否存在? 答案2023-06-11:...
- 2019-08-02 1、判断数组中是否存在某键值。 函数:in_array() 写法:in_array(...