2012-02-18 16 views
1

私はリクエストがいっぱいになっているrabbitmqキューを持っており、リクエストリクエストを待たずにリクエストを非同期的にHTTP GETとして送信したいと思います。今私は、スレッドやEMだけを使用する方が良いと混乱していますか?私が現時点で使用している方法は、次のようなものですが、プログラムの非常に重要な部分であるため、ここでパフォーマンスが改善された実装があるかどうかを知ることは大変です。ruby​​を使用した非同期HTTPリクエスト

上記のコードでは、システムは各要求が完了するのを待ってから次の要求を開始しますか?ここにヒントがあれば、私はそれを高く評価します

答えて

1

HTTPは同期しているので、返事を待たなければなりません。スレッドプールを持つことができる非同期環境をシミュレートし、各要求を応答を待つスレッドに渡す場合は、次の要求までプールに戻ってください。スレッドが応答を終了したときに使用するコールバック関数を送信するか、すぐに将来の返信オブジェクトを返すかのどちらかです。返信データが実際に必要になるまで返信を待つことができます。

他の方法は、いずれの場合も、リクエストを処理して応答を待っているの各1プロセスのプールなど

を持つことで、あなたは十分に大きいか、他でプールを持っている必要がありますあなたはまだいくつかの時間を待つことになります。

+0

私のコードを適用する方法の例は非常に高く評価されますが、理論的にはわかりましたが、私はそれをどのように適用できますか、それを示すリンクがあります。スレッド?スポーン?事前に感謝 – Eqbal

+0

私は答えがlibcurlを使用するTyphoeusのような何かを使用することだと思う、とにかく私は上記のコードでそれを適用するために管理していない – Eqbal

+0

@Eqbalこれは決してこれを把握しましたか? – alalani