У меня есть относительно небольшой фрагмент кода инициализатора, который я хочу запускать всякий раз, когда запускается rails server
, но не когда я запускаю rails generate
, rails console
или любую другую команду rails (включая задачи rake, требующие задачи среды) , Этот фрагмент кода предварительно заполняет некоторые кэши и является относительно дорогим, поэтому я действительно не хочу, чтобы он работал на чем-либо, кроме rails s
Неудовлетворительные решения:
Foreman et al. будет означать, что он будет запущен в другом процессе, который (а) перегружен для этого небольшого фрагмента кода, (б) требует межпроцессного взаимодействия вместо простого подхода в памяти, предоставляемого инициализатором.
На сервере я решил эту проблему, настроив пассажиров для передачи специальной переменной среды в rails, сообщая, что она работает в контексте сервера. Однако я хотел бы, если это возможно, работать "из коробки" на всех машинах разработчика, не прибегая к тому, чтобы не забыть запустить rails server таким способом, который также предоставит эту переменную среды (т.е. 1013 *).
Этот вопрос всегда задавался ранее относительно запуска инициализатора при работе в rails server
, а не в rake
. Однако я хочу, чтобы он запускался только при инициализации сервера - исправление для rake прекрасно, но не является исчерпывающим.