java springrabbitmq让一个队列等待另一个队列

标签 java spring rabbitmq

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

最佳答案

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

关于java springrabbitmq让一个队列等待另一个队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34445249/

相关文章:

python - celery :删除超过 5 分钟的空队列?

java - JTextArea 行到 ArrayList<String>

java - 如何接收 convertAndSend 发送的内容?

java - POST 到 Spring MVC Controller 结果为 "HttpMessageNotReadableException: Could not read JSON: No suitable constructor found"

java - 如何在 Eclipse 的工作区中查找对 equals() 的类型特定引用?

java - 使用 spring restTemplate 对 REST API 进行基本身份验证

java - 返回图像 AWS S3 (S3Object) Spring REST Controller

rabbitmq 服务器节点未启动

testing - Rails - 使用 Rspec 测试 RabbitMQ 通知.我正在使用兔子 gem

spring - 如何在 spring mvc 中将表单值获取到 Controller