2011-07-07 17 views
2

私はNode.jsアプリケーションにリクエストを送るRailsアプリケーションを持っています。 node.jsアプリケーションは要求を処理し、Railsアプリケーションに戻ります。RailsとNode.jsのメッセージキューとしてのRedis pub/subをAsync用に使用

これはすべてRailsアプリケーション(Node.jsが返るまでブロックされます)で同期的に行われます。しかし、私がしようとしているのは、これをノンブロッキングにすることです。

Node.jsアプリにリクエストを送信し、Node.jsアプリから戻ると、RailsアプリはUI(リクエストがブロックされていない状態)を介してユーザーに情報を表示します。

これは私がこのようなことをする必要があるのは初めてで、どのように知ることができないのです。私はキュー(おそらくredis pub sub)にリクエストを置くと、Node.jsを使用してリクエストを取得して処理し、再び戻ることができると私は考えていました。これは効果がありますか?

また、どのユーザーがリクエストを行ったのか(どのようにnode.jsアプリケーションによって処理された情報を返さなければならないのですか)をどのように知ることができますか?

ありがとうございました

答えて

1

どのユーザーがリクエストを行ったのかを知るには、ユーザーIDを引数として渡します。ユーザーIDがない場合、これを行うもう1つのオプションはIP経由ですが、それは複雑になるでしょう。

しかし、あなたが説明したことはうまくいくと思われます。

これはあなたの最初の時間であれば、私はこのスクリーンキャストを検討して提案することができる:http://railscasts.com/episodes/271-resque

+1

ユーザーの多くは、背後にあるNAT => http://en.wikipedia.org/wiki/あるのでIPは、安全ではありませんNetwork_address_translation。 1 IPは多くのユーザーにマップされます。 – Alfred

+0

それは私の心配でした。しかし、私は他の解決策は考えられませんでした。 –

+0

IPの代わりに、相関識別情報として機能するクライアント用のUUIDを生成します。 – ordnungswidrig

関連する問題