3

RabbitMQチャネルを使用して、消費と公開の両方を1つのPythonスレッドで実行できますか?

4

5 に答える 5

0

私はあなたがしたいとは思わない。MQは非同期処理を意味します。同じスレッドで消費と生成の両方を行うと、私の意見では目的が無効になります。

于 2013-01-31T18:57:14.197 に答える
0

実際にはこれはまったく問題ではなく、たとえばpika問題は非常に簡単に行うことができますが、ブロッキングループであるため消費を停止するか、メッセージの消費中に生成を行う必要があります。

消費と生成は通常のユースケースです。特にpikaはスレッドセーフではないため、たとえばメッセージに何らかの形式のフィルターを実装したい場合や、スマートルーターを実装してメッセージを渡す場合は特にそうです。別のキューに。

于 2013-02-03T18:06:37.420 に答える
0

ワーカー タスクを管理するには、Celery ( http://celery.readthedocs.org/en/latest/ ) を参照することをお勧めします。これにより、RMQ が生成と消費を処理するため、RMQ と直接統合する必要はありません。

ただし、RMQ と直接統合して独自のワーカーを管理したい場合は、統合について Kombu ( http://kombu.readthedocs.org/en/latest/ ) を確認してください。両方を同じイベント ループに入れることを許可するノンブロッキング コンシューマーとプロデューサーがあります。

于 2013-01-31T19:13:53.980 に答える
0

あなたの質問に対する簡単な答えはイエスだと思います。しかし、それはあなたが何をしたいかによります。私の推測では、あるチャネルでスレッドから消費しているループがあり、いくつかの (小規模または大規模な) 処理の後、別のチャネルの別のキュー (または交換) に送信することを決定した後、問題は見られません。それはまったく。別のスレッドにディスパッチする方が望ましい場合もありますが、必須ではありません。

プロセスについて詳しく説明すると、より具体的な回答が得られる可能性があります。

于 2013-02-01T07:47:47.757 に答える