Rails 3:仅为服务器启动执行初始化程序

我正在开发一个Rails 3.1应用程序,它需要在应用程序服务器启动时启动几个后台进程:(1)使用FSSM监视某个目录中的文件的文件系统监视进程,以及(2)Resque“worker “从Resque队列执行作业的进程。

在我最初的尝试中,我通过在config / initializers目录中的初始化程序中生成进程来完成此操作。 这个工作正常,因为进程与“rails服务器”一起正确启动和停止。 但是,问题是每当我运行“rails console”或任何Rake任务时,也会执行这些初始值设定项。 有没有办法让初始化程序只作为“rails server”命令的一部分运行,而不是在“rails console”或Rake任务期间运行?

或者,是否有更好的方法来启动不使用初始化器机制的后台进程? 我仍然希望能够通过一个命令一起启动所有内容。

谢谢!

您可以通过许多不同的方式启动后台任务和流程。 你应该使用更成熟的方法……

  • monit的
  • 暴发户
  • init.d脚本

但是,如果你想简化流程我建议你使用Foreman …

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