gpt4 book ai didi

mysql:像 SQS 一样的排他性选择?

转载 作者:行者123 更新时间:2023-11-30 23:38:08 28 4
gpt4 key购买 nike

有没有办法在mysql上模拟Amazon SQS的消息选择机制(exclusive selects)?我需要这个来为多个 ec2 实例使用一个 mysql 表,这些实例将处理和删除其中的行。

select ... for update 不是我想要的,因为它在 select 上锁定线程,而不返回未锁定的实例。

最佳答案

最终我想到了这个想法(现在没有实现):

  1. 更改目标表,添加列 lock_name、lock_time

  2. 在每次迭代中:

2.1。更新 target_table set lock_time = now(), lock_name = 'controller_instance_name' where lock_time < now() - visibilityTimeout

2.2。 select * from target_table where lock_name = 'controller_instance_name' 和 lock_time > now() - visibilityTimeout

2.3 为每一项选择

2.3.1 处理

2.3.2 从表中删除:delete from target_table where id = ?

每个 Controller 实例在锁定超过 visibilityTimeout 值后将能够选择行。

关于mysql:像 SQS 一样的排他性选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5766193/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com