2016-12-05 17 views
1

私は以下のシナリオを持っています:メッセージの並行処理

APIからの長いポーリングHTTP接続(ノンストップ)を管理するスレッドが1つあります。新しいメッセージが到着したときは、特別なメッセージprocess()で処理する必要があります。

受信メッセージが同時に処理されるように設計したいだけですが、もう1つの重要な点があります。各処理の最後に、応答は分離キュー糸。そこから回答がHTTP経由で送信されます。 enter image description here

のは、それが第二で30-50のメッセージとすることができ、procces方法は10秒まで1から動作することを考えてみましょう。ここでは

スキームです。

質問は、このアーキテクチャを実装するためにどのライブラリまたはフレームワークを使用できますか?

私が研究している限り、Python Tornadoは優れたベンチマークを持っていますが、ここではWebフレームワークは必要ありません。メッセージプロセッサの同時実行を可能にするツールです。

答えて

0

メッセージレートはかなり低いです。したがって、RabbitMQ/Redis,Celery(「セロリプロジェクト」)、asyncioなどの「標準」ツールを自由に使用できます。

RabbitMQ/Redisとは、キューを実装してタスクやプロセスを管理するための優れたツールです。

Asyncioは、トルネードよりも高速ですが、あなたの仕事には関係ありません。もっと重要なことは、asyncioがあなたに最新のコルーチン技術のすべてのメリットを与えることです。

関連する問題