RabbitMQチャネルを使用して、消費と公開の両方を1つのPythonスレッドで実行できますか?
5 に答える
私はあなたがしたいとは思わない。MQは非同期処理を意味します。同じスレッドで消費と生成の両方を行うと、私の意見では目的が無効になります。
ワーカー タスクを管理するには、Celery ( http://celery.readthedocs.org/en/latest/ ) を参照することをお勧めします。これにより、RMQ が生成と消費を処理するため、RMQ と直接統合する必要はありません。
ただし、RMQ と直接統合して独自のワーカーを管理したい場合は、統合について Kombu ( http://kombu.readthedocs.org/en/latest/ ) を確認してください。両方を同じイベント ループに入れることを許可するノンブロッキング コンシューマーとプロデューサーがあります。
あなたの質問に対する簡単な答えはイエスだと思います。しかし、それはあなたが何をしたいかによります。私の推測では、あるチャネルでスレッドから消費しているループがあり、いくつかの (小規模または大規模な) 処理の後、別のチャネルの別のキュー (または交換) に送信することを決定した後、問題は見られません。それはまったく。別のスレッドにディスパッチする方が望ましい場合もありますが、必須ではありません。
プロセスについて詳しく説明すると、より具体的な回答が得られる可能性があります。