Daemoninsing一个rake任务

时间:2012-03-04 14:34:35

标签: ruby-on-rails rake daemon

我有一个rake任务,它在rails环境下运行mailman。

我想确保rake任务始终通过守护程序运行。

我的佣金任务是rake incoming_mail

我怎么去躲避那个?

4 个答案:

答案 0 :(得分:4)

在linux中为了在后台运行一个进程,你可以添加&到命令结束。所以

rake incoming_mail&

应该为你做好工作。

答案 1 :(得分: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的更多信息。

答案 2 :(得分:0)

如果您使用Ruby 1.9+,则可以使用Process.daemon。还有一个Ruby<的解决方案。 1.9:http://www.jstorimer.com/blogs/workingwithcode/7766093-daemon-processes-in-ruby

答案 3 :(得分:0)

如果它是docker映像,那么肯定是Linux,

rake incoming_mail &

应该通过登录pod并运行rake任务来完成这项工作

除此之外,放

Rails.logger.info在您的代码中,因此日志将被推送到应用程序日志文件或

GCloud Stackdriver或任何日志记录框架。