stop_server(@signature)没有关闭端口:EventMachine:Ruby

时间:2013-08-30 07:06:57

标签: eventmachine ruby-1.9.3

我正在使用eventmachine。并且需要使用port in loop重新启动服务器。

我正在尝试使用代码stop_server(@signature) id停止服务器,但如果我重新连接它,则会出现错误

/gems/eventmachine-1.0.0/lib/eventmachine.rb:526:in `start_tcp_server': no acceptor (port is in use or requires root privileges) (RuntimeError)

这是代码

    $servers = {}
    EventMachine::run {
        [1,2,3].each do |port|
            $servers[:em_server_id] =  EventMachine::start_server "", port, EchoServer, port
            restart_server($servers[:em_server_id],port)
        end
    }

    def restart_server(s,port)
      EventMachine::stop_server(s)
      $servers[:em_server_id] = nil
      EventMachine::start_server "", port, EchoServer, port
    end

如果我能更好地解决重启服务器的问题,那么我也需要以这种方式再次停止和启动服务器。

0 个答案:

没有答案