Rails 3: выполнить инициализатор только для запуска сервера - PullRequest
2 голосов
/ 18 октября 2011

Я работаю над приложением Rails 3.1, которое должно запускать несколько фоновых процессов при запуске сервера приложений: (1) процесс мониторинга файловой системы, использующий FSSM для мониторинга файлов в определенном каталоге, и (2) Resque «рабочий» процесс, который выполняет задания из очереди Resque.

В моей первоначальной попытке я сделал это, порождая процессы в инициализаторе в каталоге config / initializers. Это прекрасно работает в том смысле, что процессы правильно запускаются и останавливаются вместе с «сервером rails». Однако проблема заключается в том, что эти инициализаторы также выполняются всякий раз, когда я запускаю «консоль rails» или любые задачи Rake. Есть ли способ запустить инициализаторы только как часть команды "rails server", а не во время "rails console" или задач Rake?

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

Спасибо!

1 Ответ

4 голосов
/ 18 октября 2011

Существует множество способов запуска фоновых задач и процессов.Вы должны использовать более устоявшиеся методы ...

  • Monit
  • Upstart
  • init.d scripts

Однако, если вы хотитеупростить процесс, который я предлагаю вам использовать Форман ...

http://blog.daviddollar.org/2011/05/06/introducing-foreman.html

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