微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

跳过锁定在mariaDB中的替代方法

如何解决跳过锁定在mariaDB中的替代方法

在mariaDB中,有没有FOR UPDATE SKIP LOCKED以外的其他优秀表现?还是有什么好的做法可以在mariaDB中归档工作队列?

解决方法

请使用索引的processing列,而不是使用锁来指示正在处理队列记录。对于新记录,将其设置为0,并在与任何处理分开的事务中选择一个未处理的记录并将其更新为1。可能还存储时间和进程或正在处理记录的线程ID和服务器。有一个单独的监视过程,以检测标记为在预期时间内未完成处理的作业。

甚至可以避免选择记录所需的非主索引的临时锁定的另一种方法是使用单独的非数据库消息队列来通知您数据库队列中可用的新记录。 (除非您永远不关心一个工作单元是否被多次处理,否则我将始终使用数据库表以及任何非数据库队列。)

,

从QUEUE_TABLE LIMIT 1个返回中删除*

用于出队操作。根据您的需求可能会正常运行

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。