美文网首页
多实例并发任务锁

多实例并发任务锁

作者: _遥远的光 | 来源:发表于2020-03-30 11:58 被阅读0次
@Component
public class CleanLogSchedule {
    private static final Logger logger = LoggerFactory.getLogger(CleanLogSchedule.class);
    public static final String CLEAN_LOG_LOCK_KEY = "cleanLog:lock";

    @Autowired
    private JedisCluster jedisCluster;

    @Autowired
    private ServerConfig serverConfig;

    @Autowired
    private LogDao logDao;

    @Scheduled(cron = "${cleanLog.cron:0 0 0 */1 * ?}")
    private void process() {
        String lockResult = jedisCluster.set(CLEAN_LOG_LOCK_KEY, "lock", "NX", "EX", serverConfig.getCleanLogSchedulerLockTtl());
        if (lockResult == null) {
        logger.debug("other instances is processing clean log,ignore...");
            return;
        }

    } catch (Exception e) {
        logger.error("error process clean log", e);
    } finally {
        jedisCluster.del(CLEAN_LOG_LOCK_KEY);
    }
}

相关文章

  • 多实例并发任务锁

  • MyBatis-Plus乐观锁插件的使用

    乐观锁是为了解决应用多实例,数据库单一实例时,并发修改同一条记录可能造成的并发问题。一般来说,乐观锁的实现方案都是...

  • 分布式锁实现

    在多实例部署中,当我们需要对实例间作并发控制,那么就涉及分布式锁问题,我们常用的分布式锁实现有基于 Redis /...

  • 数据库并发控制——悲观锁、乐观锁、MVCC

    三种并发控制:悲观并发控制、乐观并发控制、多版本并发控制。 悲观并发控制(又名“悲观锁”,Pessimistic ...

  • 你应该了解的MySQL锁分类

    MySQL中的锁 锁是为了解决并发环境下资源竞争的手段,其中乐观并发控制,悲观并发控制和多版本并发控制是数据库并发...

  • 并发编程之对象锁 — synchronized

    并发的前提:多线程操作共享变量 对象锁,字如其名,就是给java对象加的锁,包括new出来的实例对象以及class...

  • java中的实例锁(Synchronized)和类锁(Stati

    这篇文章我们简单了解下java中实例锁和类锁。 在这里先给个福利,恶补下锁的作用:对于并发工作,你需要某种方式来防...

  • 锁和并发控制

    原博文有图,做得很漂亮~浅谈数据库并发控制 - 锁和 MVCC 常见的三种并发控制机制: 悲观锁 乐观锁 多版本并...

  • 锁的详解

    1、Oracle锁类型 锁的作用:保护数据、并发(Oracle 可以并发,因为有锁;因为有锁,限制并发) la...

  • ReadWriteLock

    ReadWriteLock 适用于读多写少的场景,针对读多写少这种并发场景,Java SDK并发包提供了读写锁——...

网友评论

      本文标题:多实例并发任务锁

      本文链接:https://www.haomeiwen.com/subject/lcomuhtx.html