我正在測試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