私は現在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 }
10秒後に、サーバーはstdoutに"INFO going to shutdown ..."
を書き込みますが、実際にはシャットダウンされず、着信要求を処理し続けます。私は間違って何をしていますか?
いいえ、$ serverの値が初期化されています。 '' INFOがシャットダウンするように... "'サーバーの応答はそれを示唆しています。実際には決してシャットダウンしません。とにかく、私はこの2つの文字列を切り替えようとしました。違いはありません。 – grigoryvp
あなたは '$ server .__ id__'をスレッド内と' .serve() 'の前に出力できますか?両方の場合(同じ) – farnoy
@famoy 70259918873820 – grigoryvp