redis 锁判断任务是否存在

    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("有导出任务正在进行中,请稍后在重新常识!");
        }

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容