1
私はPikaと連携していくつかのキューを消費するマルチプロセスとマルチスレッドシステムを持っています。 システムがマルチスレッドコンシューマのシングルプロセスで動作する場合、正常に動作しますが、マルチプロセス(生成されたプロセス)で動作する場合、コンシューマによってはキューから重複データを取得することがあります。マルチ処理システムで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
...
注:各スレッドは、独自の接続を持っています。
メッセージを消費して拒否してキューに入れない限り、RabbitMQは同じデータを2回配信しません。これはpikaのバグかあなたのアプリケーションです。実装についての詳細がなければトラブルシューティングが難しいでしょう。 – eandersson