2011-06-28 13 views
7

私は単一のキューを持つ単一のRabbitMQ交換を持っています。私は、複数のスレッドを実行し、このキューをできるだけ迅速に処理するデーモンを作成したいと考えています。複数のスレッドを持つrabbitmqメッセージキューを消費する(Python Kombu)

「仕事」には外部サービスとの通信が含まれるため、各消費者にはかなりの量のブロッキングが発生します。そのため、同じキューからのメッセージを扱う複数のスレッドが必要です。

これは、プライマリスレッドのキューを消費し、次に受信スレッドを他のスレッドのプールにコンバートすることで実現できますが、それぞれ独自のスレッドコンテキスト内で複数のコンシューマを起動する方法はありますか?

答えて

3

celeryを見てください - それはAMPQブローカーからのタスクを待ち行列に入れて処理するように設計されていますが、他のキューバックエンドでも機能します。これはマルチプロセスまたはマルチスレッド同時実行を処理し、タスクの作成および使用を非常に簡単にします。

+0

これはpythonのみに制限されています。これはrabbitmqが言語に依存しないので理想的ではないかもしれません。タスク分散のための言語に依存しない容易に作られたパッケージはありますか? – liang