守护进程从应用程序启动开始

时间:2010-08-31 13:27:50

标签: ruby-on-rails ruby

我有一个守护进程应该在我的rails应用程序后面进行db修改。我使用ruby daemons gem实现了该守护进程。我想在我的应用程序开始时启动该守护进程。每当我的应用程序启动时,我都需要启动该守护进程。

我怎么能这样做??

2 个答案:

答案 0 :(得分:2)

如果必须在Rails初始化期间启动它:

  1. 创建一个将启动守护程序的ruby文件。说invoke_daemon.rb
  2. 将此文件放入config/initializers/invoke_daemon.rb
  3. 但是,如果它不是强制性的,我建议创建二进制可执行文件或rake任务,并通过命令行手动启动它。这样它就可以作为一个单独的进程运行。您只需将其添加到生产框的部署脚本中,然后在开发框中手动运行它。一些示例是searchd,来自sphinx的{​​{1}}和thinking_sphinx:delayed_delta rake任务的搜索守护程序。

答案 1 :(得分:2)

为了您的知识,您必须要注意 Rails Life cycle

我刚刚实现了这个东西。我在Windows7上实现了。
我创建了一个批处理文件,例如 my_batch.bat ,其中包含ruby命令,即 ruby​​ my_daemon.rb 文件。
另外,要在我的应用程序启动时执行此文件,我刚刚在environment.rb文件中添加了一个执行该批处理文件的语句。即系统(“my_batch.bat”) 但我不确定这是实施这项任务的好方法。