지금 Ruby XMLRPC 지원을 테스트하고 있습니다. XMLRPC::Server#shutdown
을 제외한 모든 것이 정상적으로 작동합니다. 나는 다음과 같은 루비 1.9.3 테스트 코드를 실행하면Ruby XMLRPC 서버를 종료하는 방법은 무엇입니까?
, 그것은 모두 윈도우 7과 OSX 10.7에 서버를 종료하는 데 실패, 서버는 stdout에 "INFO going to shutdown ..."
를 기록,
# 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 }
열 후 초 만 실제로 종료되지 않고 들어오는 요청을 계속 처리합니다. 내가 도대체 뭘 잘못하고있는 겁니까?
아니요, $ server의 값이 초기화됩니다. ''종료 할 정보 ... "'서버 응답은 그것을 암시합니다. 단지 실제로 종료되지 않습니다. 어쨌든,이 두 문자열을 전환하려고 시도했습니다 - 차이가 없습니다. – grigoryvp
당신은'$ server .__ id__'를 쓰레드와'.serve()'앞에서 출력 할 수 있습니까? – farnoy
@ famoy 70259918873820 두 경우 모두 (동일). – grigoryvp