4

Python で AMQP サポートを実装するライブラリが多数あることは知っています。ただし、必要なのはライブラリです。同期スタイルで AMQP パブリッシュを実行できるようにする必要があります。これは WSGI アプリから使用されるため、キュー ブローカーとの通常の非同期コールバック駆動型の対話スタイルは、少し場違いです。

システムの他の部分では、 AMQP サポートにpikaを使用していますが、これは非同期であり、一種の「ブロッキング」接続があっても使用したくありません。

もちろん、他のすべてが失敗した場合は、WSGI プロセスごとに Pika イベント ループを維持することができます。もう 1 つの問題は、Pika の現在の安定版に厄介な (IMO) バグがいくつか見つかったため、別のものを使用したいということです。

繰り返します:

  • basic.publish を実行する必要があります (メッセージが実際に公開されていないことがわかるように、「確認」をサポートしています)
  • 同期的に
  • rabbitmq へ (明らかに、「純粋な」AMQP も機能します)
  • Python WSGI アプリケーションから
4

3 に答える 3

1

私の理解では、同期呼び出しにはRabbitMQのRPCを使用できます。あなたはすでにピカを持っているので、あなたがそれを採用するための多くの努力はないはずです。

于 2012-07-19T02:51:33.940 に答える
1

Celeryで使用される基礎となるライブラリであるKombuをチェックすることをお勧めします。Kombu と Celery はどちらも一般的かつ簡単に Django と Flask (Werkzeug ベース) に統合されるため、WSGI アプリケーションとの統合に問題はありません。

于 2012-07-19T04:06:17.023 に答える
0

pikaドキュメントサイトでサンプルコードをテストしましたか?

同期プログラミングスタイル、同時実行なしhttp://pika.github.com/communicating.html#synchronous-programming-style-no-concurrencyというセクションがあります。

必要なのは一種のRPCスタイルの呼び出しのようです。良い同期の例は次の場所にあります: http ://www.rabbitmq.com/tutorials/tutorial-six-python.html

于 2012-07-20T08:16:33.023 に答える