0

スタンドアロンサービスとして成長するプラットフォームに挿入する分類APIを構築しています。基本的に、私はテキストの一部を送信し、それに独自の魔法を実行して、jsonで応答したいと思います。

簡単ですよね?

問題は、操作のために大きなハッシュをメモリにロードする必要があるテキストに対して実行したいメソッドがいくつかあることです。今のところ、操作する新しいテキストを送信するたびに、これらのオブジェクトを初期化する必要があります。

呼び出しごとにオブジェクトを再作成せずに、コントローラー内でアクセスできるオブジェクトのグローバルインスタンスを設定するための最良の方法は何ですか?

これはイニシャライザーに含める必要がありますか、それとも特定のコントローラーに関連付ける方法がありますか?

4

2 に答える 2

0

グローバル変数を使用することもできますが、真剣に推奨することはできません。SimoneCarlettiによるこの回答を必ず読んでください。追加する必要があります-彼は、より堅牢なキャッシングソリューションを使用することを指しています。これは私がお勧めするものです。

于 2012-04-30T18:35:26.373 に答える
0

ここにはいくつかのオプションがあります。

A.ハッシュを一定のオンレール起動にロードして、アプリケーション全体で利用できるようにし、1回だけロードすることができます。これを行うには、初期化子に定数を追加します。

B.ハッシュをmemcachedにロードし、ロジックを作り直して、ハッシュの代わりにmemcachedをクエリします。これは少し複雑になりますが、これを行う場合は私の好みの方法になります。ファイルをmemcachedにロードし、インスタンスまたはレール間でmemcachedのインスタンスを共有するrakeタスクがあります。これにより、必要なメモリオーバーヘッドの量が削減されます。有効期限をnilに設定していることを確認してください。

于 2012-04-30T20:22:37.960 に答える