stop_server(@signature) не закрывает порт: EventMachine:Ruby
Я работаю на eventmachine . И необходимо перезагрузить серверы с портом в цикле.
Я пытаюсь остановить серверы с кодом stop_server(@signature)
идентификатор, но если я снова подключить его, это дает мне ошибку
/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
Если я получу лучший способ перезагрузки сервера, который также поможет, мне нужно будет остановить и запустить серверы только таким способом.