java spring rabbitmq 让一个队列等待另一个

java spring rabbitmq make a queue wait for another

我有一个 java spring 应用程序和 rabbitmq 服务器。我有两个队列。第一个检查 A 是否在 DB 中。第二个将 A 保存到 db。我的意思是听众。但是,如果我发送许多具有相同 A 的请求,则第一个队列侦听器会尝试检查数据库中的 A,甚至在第二个侦听器将其保存到数据库之前。如何同步两个队列?所以第一个侦听器应该知道第二个侦听器已经将这个 A 保存到 DB,然后第一个侦听器应该在 DB 中检查它。所以,如果我发送 A 的 1000 个请求,第一个侦听器检查 A,没有 A,然后发送给第二个侦听器,它保存了 A,但是在第二次迭代中,第一个再次检查 A,但第二个侦听器可能无法完成这是工作。然后第一个应该等待。如何解决?

使用线程,可能还有锁。
第一个线程从队列 A 中提取元素,并将其传递给其他线程,该线程锁定您的数据库,检查 A 是否在数据库中,如果不在,则将其写入数据库,解锁数据库,并接受下一个传递的元素。与队列 B 相同。
只需在检查和写入数据库之前锁定数据库,并在写入数据库后解锁。

我没有找到任何解决方案,但可以通过使用具有不同传播级别的 java sql 事务来解决。