Ruby on Rails
リモートサーバーにHTTPリクエストを頻繁に送信する必要があるアプリケーションがあります。em-http-client
そして、毎回1つのクライアントを作成するのではなく、それら(複数のクライアントが存在する)をグローバルに保持したいと考えています。しかし、そのクライアント配列をどこに格納する必要があるのか、はっきりしていません。たとえば、セッションに保存しますか?または、RORは、すぐに使用できるシングルトンパターンのようなものを用意していますか?
質問する
168 次
1 に答える
0
まず、ruby
自身がsingleton
パターン能力を持つ。ドキュメントをご覧ください。
そのため、リクエスト間で永続的なインプロセス ストレージが必要です。
ではRubyOnRails
、次のオプションを使用できます。
- グローバル変数 (悪い考えです。理由はわかりません)
- クラス 変数 (継承ツリー全体で共有されるため、悪い考えです)
- のインスタンス変数
metaclass
- スレッド内ストレージ (
Thread.current[:whatever]
) - 忘れていた別の場所
で初期化することをお勧めしconfig/initializers/your_initializer.rb
ます。
私は3番目のオプションを好みます。
これがあなたが探している素朴な実装です。
class EMClient
class << self
attr_accessor :pool
end
@pool = []
end
于 2013-01-21T06:27:45.907 に答える