如何使用守护进程控制器自动启动faye?

时间:2012-12-05 09:40:38

标签: ruby-on-rails daemon faye

我正在尝试使用gem daemon_controller自动运行faye 我的班级

require "daemon_controller" 
class FayeDaemon
def initialize
  @controller = DaemonController.new(
      :identifier    => 'Faye server',
      :start_command => "rackup faye.ru -s thin -E production",
      :ping_command  => [:tcp , 'localhost', 9292],
      :log_file      => 'log/faye.log',
      :pid_file      => 'tmp/pids/faye.pid',
      :start_timeout => 5
   )
end    

  def start
  @controller.start
  end
end

功能我在ApplicationController中用作before_filter

 def start_faye
 fayes = FayeDaemon.new
 fayes.start
 end

因此faye不会运行错误
DaemonController :: StartTimeout(守护进程'Faye服务器'没有及时守护。)

当fayes.start被调用时。

我做错了什么?

1 个答案:

答案 0 :(得分:2)

我强烈建议你使用foreman而不是deamon_controller,你可以找到好的介绍here。只需安装gem,在rails根目录中创建'Procfile'即可。并创建两个作业,一个用于服务器,另一个用于Faye,它可能看起来像这样:

web:    bundle exec rails server webrick -b 127.0.0.1 -p 3000 -e development
faye:   bundle exec rackup faye.ru -s thin -E production

并以

开始领班
foreman start