我有一个守护进程应该在我的rails应用程序后面进行db修改。我使用ruby daemons gem实现了该守护进程。我想在我的应用程序开始时启动该守护进程。每当我的应用程序启动时,我都需要启动该守护进程。
我怎么能这样做??
答案 0 :(得分:2)
如果必须在Rails初始化期间启动它:
invoke_daemon.rb
config/initializers/invoke_daemon.rb
但是,如果它不是强制性的,我建议创建二进制可执行文件或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”)
但我不确定这是实施这项任务的好方法。