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