私はSinatraアプリケーションのPOSTメソッドの一部として別のサーバーにリクエストしています。要求を行うために使用しているライブラリは、要求が行われたときにすぐにEM :: Deferrableオブジェクトを返すEventMachineライブラリですが、非同期要求が完了するまでコントローラメソッドでブロックする必要があります。要求で返されたデータこれを行うための最良の方法は何ですか?EventMachineの遅延オブジェクトをブロックするにはどうすればよいですか?
0
A
答えて
1
async_sinatraとEMベースのWebサーバーThinの1つの解決方法があります。 async_sinatraを使用すると、明示的レンダリングの方法はbody
になります。
require 'sinatra/async'
require 'em-http-request'
class Application < Sinatra::Base
register Sinatra::Async
apost '/' do
http = EM::HttpRequest.new('http://www.google.de/').get
http.callback do
body do
# your http processing in here, will be rendered
end
end
http.errback do
body { 'error' }
end
end
end
+0
これは完全に機能しました。ありがとう! – Bryan
0
イベントを発生したAPIでブロックすると、2つの世界のうち最も悪いものになります。
私は、より伝統的な方法(ラ・カール)に賛成するEMを通した呼び出しを避けようとします。
これが不可能な場合は、空の部分を返し、クライアントにサーバーの更新をポーリングしてもらいます。
関連する問題
- 1. システムをブロックせずに遅延AMP応答を与えるにはどうすればよいですか?
- 2. 遅延アクションをテストする方法 - EventMachine
- 3. コールバックサンプルを遅延オブジェクトに変換するにはどうすればよいですか?
- 4. 署名付きライブラリによるブート遅延を回避するにはどうすればよいですか?
- 5. 遅延ロードを行うためにプライベートプロパティのヌルチェックを避けるにはどうすればよいですか?
- 6. C#でWebリクエストとサイトの間に遅延を導入するにはどうすればよいですか?
- 7. このメニューのマウスオーバーで遅延を設定するにはどうすればよいですか?
- 8. Spotifyアプリケーションでの同期Webサービスコールの遅延を回避するにはどうすればよいですか?
- 9. 表示テキストのテキストビューで遅延を使用するにはどうすればよいですか?
- 10. このjQueryマウスオーバーに遅延を追加するにはどうすればよいですか?
- 11. 遅延関数のシーケンスをjQuery 1.8.xにチェーンするにはどうすればよいですか?
- 12. シェーダの最初の使用の遅延を修正するにはどうすればよいですか?
- 13. プラグインの実行をコールバックから遅延させるにはどうすればよいですか?
- 14. Node.JSの遅延操作を正しく処理するにはどうすればよいですか?
- 15. android - Samsung RFSファイルシステムの遅延/フリーズを回避するにはどうすればよいですか?
- 16. onClickで遅延を実装するにはどうすればよいですか?
- 17. MooToolsで遅延を作成するにはどうすればよいですか?
- 18. PLINQで遅延ロードを取得するにはどうすればよいですか?
- 19. サイレントに失敗した遅延ジョブprocをトラブルシューティングするにはどうすればよいですか?
- 20. EntitySpaceに遅延読み込み列を追加するにはどうすればよいですか?
- 21. 遅延読み込みを解決するにはどうすればよいですか?
- 22. ネットワークの伝送遅延を見つけるにはどうすればよいですか?
- 23. WP7でスクリーンタイムアウトを延期するにはどうすればよいですか?
- 24. NS2シミュレーションでリンクの遅延を変更するにはどうすればいいですか?
- 25. マップのマップのマップを適切に遅延させるにはどうすればいいですか?
- 26. EventMachine :: Multiリクエストでブロックする
- 27. jQueryで入力をブロックするにはどうすればよいですか?
- 28. 自分のプロダクションサーバでEventMachineアプリケーションを実行するにはどうすればよいですか?
- 29. 表示と遅延 - jQuery、どのように遅延を使用するのですか?
- 30. Jenkinsのビルドプロセスに長い遅延を組み込むにはどうすればいいですか?
ThinのようなEM Webサーバーを使用していますか? – tbuehlmann