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(...