Daemoninsing一个rake任务

问题描述 投票:5回答:4

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

我想确保rake任务总是通过守护进程运行。

我的佣金任务是rake incoming_mail

我该如何进行守护?

ruby-on-rails rake daemon
4个回答
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的更多信息。


4
投票

在linux中为了在后台运行进程,可以添加&到命令的结尾。所以

rake incoming_mail&

应该为你做的工作。


0
投票

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


0
投票

如果它是一个docker图像,那么肯定它必须是linux所以,

rake incoming_mail &

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

除此之外,放

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

GCloud Stackdriver或任何日志框架。

© www.soinside.com 2019 - 2024. All rights reserved.