Демонстрация граблей

У меня есть грабли, которая запускает почтальона в среде rails.

Я хотел бы убедиться, что задача rake всегда выполняется через демона.

Моя задача с граблями rake incoming_mail

Как бы я пошел, чтобы демонизировать это?

3 ответа

Решение

Если вы используете Linux, вы можете использовать start-stop-daemon.

start-stop-daemon -S --pidfile /var/run/incoming_mail.pid -u rails_user -d /path/to/your/rails/app -b -a "rake incoming_mail"

Чтобы потом изящно убить процесс, вы можете использовать большинство аргументов, но заменить -S на -K.

Как всегда, вы можете найти больше информации о start-stop-daemon, прочитав страницы руководства.

В Linux, чтобы запустить процесс в фоновом режиме, вы можете добавить & в конец команды. Так

рейк входящей почты &

вероятно, должен сделать работу за вас.

Если вы используете Ruby 1.9+, вы можете использовать Process.daemon. Также есть решение для Ruby <1.9: http://www.jstorimer.com/blogs/workingwithcode/7766093-daemon-processes-in-ruby

Если это образ докера, то, конечно, это должен быть linux,

rake incoming_mail &

должен выполнить работу, войдя в модуль и запустив задачу rake

Помимо этого, положить

Rails.logger.info в вашем коде, поэтому журналы будут помещены в файл журнала приложения ИЛИ

GCloud Stackdriver или любой каркас регистрации.

Другие вопросы по тегам