Quartz定时框架产生行锁的解决方法

本文探讨了使用Quartz作为定时任务框架时,在多节点部署下如何解决锁冲突问题。详细介绍了通过调整SQL语句从产生大量行锁到最终采用FOR UPDATE skip locked的方式避免锁竞争,同时确保任务正确执行的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    用开源工具包Quartz做定时框架,现在遇到一个问题。

    当多个weblogic节点发布时,定时框架采用的是SELECT * FROM SP_QRTZ_LOCKS WHERE LOCK_NAME = :1 FOR UPDATE获取锁的形式,当能锁住记录则执行定时任务。多个节点执行会产生大量的行锁。


    为了解决这个问题SELECT * FROM SP_QRTZ_LOCKS WHERE LOCK_NAME = :1 FOR UPDATE NOWAIT ,可以解决锁的问题,但会导致任务出错退出。


    最后是通过SELECT * FROM SP_QRTZ_LOCKS WHERE LOCK_NAME = :1 FOR UPDATE skip locked 解决。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值