кеш: [GET /] отсутствует?Dalli Gem, Memcached, Rails 3.1, nginx, рабочая среда единорога - PullRequest
4 голосов
/ 05 октября 2011

Я изо всех сил пытаюсь получить первое приложение, работающее в производстве.Независимо от того, что я делаю, я получаю базовую страницу 404, и это в моем журнале единорога, независимо от того, что я делаю:

cache: [GET /] miss
cache: [GET /something] miss

production.rb

 config.cache_store = :dalli_store, 'localhost:11211'
 #config.cache_store = :memory_store

Все работало нормально в разработке (без кэширования, которое было пропущено при разработке afaik), и при двойной проверке у меня весь синтаксис правильный в соответствии с руководствами rails для настройки кэширования действий контроллера, только ничего, кроме сообщений об ошибках.

Кто-нибудь может дать несколько советов о том, почему или по чему я скучаю?Работает в разработке, но не на сервере, который я настроил.Я более чем рад предоставить больше информации, чтобы разобраться с этим.Это много движущихся частей, чтобы координировать, я был бы признателен за любой ввод.

edit:

Я получил некоторую обратную связь от memcached, запустил его со всеми предыдущими параметрами и -B бинарный (плюс -vv) кажется, что программа даже не соединяется с memcached;memcached ничего не регистрирует во время работы программы.

edit:

Я вернулся к локальной установке в разработке и производстве;кэширование работает, memcached отвечает, единственная разница в том, что я не использую nginx / unicorn, а просто webrick, но если это поможет точно определить проблему, о которой я должен знать, возможно, это имеет какое-то применение и направление для преследования.

edit:

Возвращение на сервер и запуск в режиме разработки с включенными конфигурациями кэша:

config.cache_classes = true config.action_controller.perform_caching =true config.cache_store =: dalli_store, '127.0.0.1:11211'

Очевидно, что rails не соединяется с memcached.В журнале ничего не говорится даже о попытке соединения с кешем, а запуск memcache с -vv не показывает активности.Если я иду к консоли, я могу вручную подключиться в соответствии с основными инструкциями Далли, хммм.Простая попытка различных опций с экземплярами memcached не дает ответа.

Однако я могу запрашивать статистику memcached на странице индекса, которая появляется при каждом запросе, где я ее установил ... хотя в журнале rails ничего не отображаетсяо доступе к memcached.

edit:

боролся через это и обнаружил, что ошибка не связана ... как только я разобрался с некоторыми проблемами конвейера активов для неверной ссылки на таблицу стилей, кажется, всеработает гладкоОпыт обучения, по крайней мере.

Ответы [ 2 ]

1 голос
/ 05 октября 2011

Dalli - только двоичный протокол, поэтому убедитесь, что ваш сервер memcached говорит по двоичному протоколу. Например, memcached должен быть запущен с:

memcached [...] -B auto [...]

Кроме того, версия memcached должна быть> = 1.4.0 .

UPDATE

Эти сообщения генерируются Rack :: Cache , установленным в режим подробного ведения журнала, и не означает, что что-то обязательно не так. Это скорее напоминание о том, что вы можете делать такие вещи, как

expires_in 20.minutes
expires_in 3.hours, :public => true
expires_in 3.hours, 'max-stale' => 5.hours, :public => true

(в ваших контроллерах Rails), а затем кэширование страниц может работать автоматически (и эти сообщения будут исчезать при каждом отображении страницы из кэша).

0 голосов
/ 10 февраля 2012

Вы можете использовать Rails.cache.read('[key]') через консоль heroku, чтобы узнать, работает она или нет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...