Инициализаторы Rails 3, которые запускаются только на `rails server`, а не на` rails generate` и т. Д.

У меня есть относительно небольшой фрагмент кода инициализатора, который я хочу запускать всякий раз, когда rails server запускается, но не когда я запускаю rails генерирует , консоль rails или любую другую команду rails (включая задачи rake, требующие задачи среды). Этот фрагмент кода предварительно заполняет некоторые кеши и является относительно дорогостоящим, поэтому я действительно не Я не хочу, чтобы он работал ни на чем, кроме rails s

Неудовлетворительные решения:

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

On t Сервер Я решил эту проблему, настроив пассажира передать специальную переменную окружения в рельсы, сообщив ему, что он работает в контексте сервера. Однако я бы хотел, чтобы по возможности работала из коробки на всех машинах разработчика, не прибегая к запоминанию запуска сервера rails таким образом, чтобы также была указана эта переменная среды (например, IN_SERVER = true rails server ).

Этот вопрос всегда задавался ранее относительно запуска инициализатора при запуске на rails server , а не на rake .Однако я хочу, чтобы он запускался только при инициализации сервера - исправление для rake отличное, но не исчерпывающее.

9
задан Nimrod Priell 28 December 2011 в 18:54
поделиться