我正在测试Ruby XMLRPC支持。它一切正常,除了XMLRPC::Server#shutdown
。如何关闭Ruby XMLRPC服务器?
如果我运行下面的Ruby 1.9.3的测试代码,它不能关闭服务器在Windows 7和OSX 10.7:
# server.rb
require "xmlrpc/server"
require 'thread'
Thread.new { sleep 10; $server.shutdown() }
$server = XMLRPC::Server.new(1234)
$server.add_handler("test") { true }
$server.serve()
# client.rb
require "xmlrpc/client"
server = XMLRPC::Client.new("localhost", "/", 1234)
loop { server.call("test"); sleep 0.1 }
后十秒钟,服务器写入"INFO going to shutdown ..."
到标准输出,但将不会实际关闭并继续处理传入的请求。我究竟做错了什么?
不,$ server的值被初始化。 “INFO将关闭...”服务器响应提示。它从来没有真正关闭过。无论如何,我试图切换这两个字符串 - 没有区别。 – grigoryvp 2012-02-17 22:16:32
您可以在线程和'.serve()'之前打印'$ server .__ id__'吗? – farnoy 2012-02-17 22:49:59
@famoy 70259918873820两种情况(相同)。 – grigoryvp 2012-02-18 06:43:46