У меня есть многопроцессорная и многопоточная система, которая работает с 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
...
Примечание. у каждого потока есть собственное соединение.