Область применения не освежает на производстве.Использование пассажира и apache2 - PullRequest
3 голосов
/ 07 июня 2011

У меня возникла очень странная проблема с моим приложением, работающим на производстве.

У меня есть следующая таблица с именем Qrtable, и она содержит 144 записи, каждая с полем кода и полем времени, увеличивающимися на 10 минут.

У меня тогда есть эта область действия

    scope :current, where("time > ? and time <= ?", Time.now-14.minutes, Time.now+5.minutes)

Эта область действия собирает записи в пределах временного диапазона и возвращает первую и последнюю запись. Он либо возвращает 1, либо 2 записи. Каждые 5 или около того минут записи, которые он имеет, изменяются.

С моей точки зрения, я просто печатаю, что такое первая и последняя записи.

    ="#{Qrtable.current.last.code} for time #{Qrtable.current.first.code}"

Итак, вот что происходит. У меня это работает как среда разработки на моем ноутбуке. Каждые 5 минут я обновляю страницу, коды меняются. Но мое производство работает на размещенном сервере, и когда я обновляю страницу, коды не меняются.

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

Я пытался обновить Apache несколько раз.

1 Ответ

11 голосов
/ 07 июня 2011

Не будет.Оценивается, когда оценивается класс.Использование:

scope :current, lambda {where("time > ? and time <= ?", Time.now-14.minutes, Time.now+5.minutes)}
...