あなたがキューイングサービスのRubyクライアントであるとします。 RabbitMQ。アクティブなポーリングやリソースを消費しないように、メッセージの実装はどのように実装されていますか?これは質問Ruby blocking on a valueから直接得られます - もしAMQPクライアントが効率的にそれを行うことができれば、Memcachedの読み込みと似たようなことをすることができます...そして一般的に、RabbitMQとそのような使い方については、Ruby AMQPクライアントはメッセージの待機を効率的にブロックしますか?
0
A
答えて
1
Rubyの世界では、これはほとんどasynchronous event driven I/Oを使って行われます。 AMPQ-client in GitHubを見ると、EventMachineとCool.IOの2つのライブラリがサポートされています。
ポーリングが有効ですが、待機中のループはオペレーティングシステムのカーネルの助けを借りて行われます。たとえば、EventMachineは、Linux上で実行している場合はepollのようなものを使用します。
目的のイベントが発生すると、コールバック関数が呼び出されます。 EventMachineがどのように機能しているかについて詳しくは、hereを参照してください。
AMPQクライアントはまだソケットを介してキューサーバーと通信していますが、APIは待機ループと通知をOSカーネルに遅延させます。
関連する問題
- 1. ミューテックスとビジー待機の効率測定
- 2. Rubyの効率的なスイッチケースです。
- 3. クライアントはAndroidサーバー上のサーバーからのメッセージを待ちます
- 4. ドメインを効率的にブロックするためのChromeの拡張
- 5. サーバーサイドのasp.netからクライアント側のjsonを効率的に登録するには?
- 6. LinuxでRS232のCTSまたはDSRを効率的に待つ方法は?
- 7. 長いメッセージに対してkohana 3.1 i18nシステムは効率的ですか?
- 8. ファイル制御ブロックを効率的に保存する
- 9. Windowsメッセージをブロックしないでイベントを待つ方法はありますか?
- 10. Web-Workerでメッセージを同期的に待機する
- 11. Celeryはローカルシステムで効率的ですが、Pythonのマルチプロセッシングは効率的ですか?
- 12. Linuxファイルシステムは効率的にファイルをキャッシュしますか?
- 13. ruby-amqpとrspecメッセージングクリーナー
- 14. Azure Service BusクライアントはActiveMQ AMQPキューに接続できますか?
- 15. ファイルを複数のクライアントに効率的に配布する方法は?
- 16. UIをブロックせずにWebサーバーからデータを効率的に要求する方法はありますか?
- 17. Javaは待機スレッドに暗黙的に通知しますか?
- 18. POP3サーバーから未回収のメッセージIDを効率的に取得する
- 19. Spring AMQP Javaクライアントのキューサイズ
- 20. を効率的
- 21. を効率的
- 22. は、効率的にハイパーリンク
- 23. ScalaはSparkで非効率的に収集しますか?
- 24. ボクセル内の球面を効率的に描画しますか?
- 25. Android:効率的にキャンバスの内容をスクロールしますか?
- 26. Rubyで効率的にx秒でタスクを実行
- 27. が効率的に
- 28. BSTRを効率的にwchar_t []にコピーしますか?
- 29. どの機能がより効率的ですか?
- 30. Spring AMQP:すべての着信メッセージと発信メッセージを傍受します
偉大なポインタ、ありがとう! – Alexy