我有一个多进程和多线程系统,它与Pika一起使用一些队列。当系统在单进程上与多线程使用者一起工作时,它工作得很好,但是当它处理多进程(派生进程)时,有时一些使用者从队列中获取重复的数据。
如何处理当使用者从队列中获取数据时,其他使用者再也不会从该队列中获取数据的问题?
发行地图样本:
Single-Process, Multi-Thread:
Sample queue data: 1-2-3-4-5
consumed by thread-1: 5
consumed by thread-2: 4
...
Multi-Process, Multi-Thread:
Sample queue data: 1-2-3-4-5
consumed by process-1, thread-1: 5 << ISSUE
consumed by process-2, thread-1: 4
consumed by process-3, thread-3: 5 << ISSUE
...注意:每个线程都有自己的连接。
发布于 2017-11-07 02:49:08
RabbitMQ团队监视这个邮寄名单,有时只回答StackOverflow上的问题。
在创建其他进程或线程之前,是否创建Pika客户端?Pika客户端既不是线程安全的,也不是多进程安全的,正如医生们中所指出的。
如果不提供一个工作示例,我就无法进一步诊断这一特定行为。
https://stackoverflow.com/questions/47136019
复制相似问题