Демонстрация граблей
У меня есть грабли, которая запускает почтальона в среде 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 или любой каркас регистрации.