おそらく最も簡単な方法は、キャッシュをカバーするさまざまなURLにGETリクエストを発行するシェルスクリプトを作成することです。これは、キャッシュウォーミングとも呼ばれます。
簡単なセットアップは、アプリケーションでscripts / cache_warmerというシェルスクリプトを作成し、サーバーのコマンドライン、デプロイスクリプト、またはresqueなどのバックグラウンドプロセッサから手動でトリガーできます。
# Sample scripts/cache_warmer
GET http://localhost/
GET http://localhost/some_other_page
もう少しインテリジェントにしたい場合の代替手段。リソースのメンバーURLをヒットできるなど、rakeタスクを使用することです。
# lib/tasks/cache_warmer.rake
task :cache_warmer => :environment do
Resource.all.each do |resource|
Net::HTTP.get_response("http://localhost/resources/#{resource.id}")
end
end
もちろん、これは単なる基本的な例です。実際のコードは、ヒットしようとしているルートとその数によって異なります。同時実行性を高めるためにマルチスレッドのオプションを検討するか、代替の「ワーカー」サーバーを使用してからの要求を実行することをお勧めします。これがどれほど複雑になるかという点では、空は限界です。セットアップによって異なります。