Я пытаюсь реализовать кэширование действий на моем контроллере политики, однако он не повторно использует кешированные фрагменты, когда размер рендеринга увеличивается.Кэширование действий не повторное использование больших кэшированных фрагментов
Когда мой индекс активности показывает только 10 объектов JSON, он создает и читает фрагменты для действия правильно. Свидетельствует:
Started GET "/policies" for 127.0.0.1 at 2013-03-10 01:03:38 -0500
Processing by PolicyController#index as JSON
Read fragment views/railsdev.com:3000/policies.json (0.3ms)
VideoPolicy Load (0.4ms) SELECT `video_policies`.* FROM `video_policies`
Write fragment views/railsdev.com:3000/policies.json (0.5ms)
Completed 200 OK in 27ms (Views: 0.2ms | ActiveRecord: 0.4ms)
Started GET "/policies" for 127.0.0.1 at 2013-03-10 01:03:56 -0500
Processing by PolicyController#index as JSON
Read fragment views/railsdev.com:3000/policies.json (0.4ms)
Completed 200 OK in 1ms (ActiveRecord: 0.0ms)
[2013-03-10 01:03:56] WARN Could not determine content-length of response body. Set content-length of the response or set Response#chunked = true
Однако, когда я увеличить число до 10000 JSON объекты, он начинает запрашивать БД и переписать фрагмент с каждым запросом. Свидетельствует:
Started GET "/policies" for 127.0.0.1 at 2013-03-10 01:12:45 -0500
Processing by PolicyController#index as JSON
Read fragment views/railsdev.com:3000/policies.json (0.3ms)
VideoPolicy Load (6.8ms) SELECT `video_policies`.* FROM `video_policies`
Write fragment views/railsdev.com:3000/policies.json (3.8ms)
Completed 200 OK in 3482ms (Views: 0.2ms | ActiveRecord: 7.5ms)
Started GET "/policies" for 127.0.0.1 at 2013-03-10 01:12:52 -0500
Processing by PolicyController#index as JSON
Read fragment views/railsdev.com:3000/policies.json (0.2ms)
VideoPolicy Load (1.7ms) SELECT `video_policies`.* FROM `video_policies`
Write fragment views/railsdev.com:3000/policies.json (115.0ms)
Completed 200 OK in 3713ms (Views: 0.2ms | ActiveRecord: 1.7ms)
[2013-03-10 01:12:55] WARN Could not determine content-length of response body. Set content-length of the response or set Response#chunked = true
Я заметил, это происходит, когда размер файла разрывает 1MB знак Есть ли какая-то (что совместно кстати максимальный размер Memcached объекта Я также использую Memcached.). максимальный размер фрагмента или по другой причине, почему он не кэширует их?
Вот мой контроллер, а также:
class PolicyController < ApplicationController
caches_action :index, :cache_path => Proc.new {|controller| controller.params }
def index
policies = VideoPolicy.all
respond_to do |format|
format.html
format.json{
render :json => policies.to_json
}
end
end
end