module WoolenCommon::DrbClientHelper

Public Class Methods

client_init(server_addr='127.0.0.1',my_port=nil) click to toggle source
# File lib/woolen_common/drb_helper.rb, line 91
def client_init(server_addr='127.0.0.1',my_port=nil)
    the_port = my_port
    if my_port
        @my_url = "druby://0.0.0.0:#{my_port}"
        @me_service = start_service(@my_url,self)
    else
        100.times do
            begin
                port = get_rand_port
                the_port = port
                if server_addr == '127.0.0.1'
                    @my_url = "druby://127.0.0.1:#{port}"
                else
                    @my_url = "druby://0.0.0.0:#{port}"
                end
                debug "client need to try url #{@my_url}"
                @me_service = start_service(@my_url,self)
                break
            rescue Exception => e
                error "在使用随机端口时出错了#{e.message}"
                retry
            end
        end
    end
    debug "server addr ::#{server_addr},port#{SERVER_DEFAULT_PORT}"
    server_str = ip_or_iport_with_default(server_addr,SERVER_DEFAULT_PORT)
    @server_service = get_drb_connect_obj(server_str)
    url = "druby://#{DEFAULT_CLIENT_ADDR}:#{the_port}"
    debug "the server#{@server_service}need to invoke worker connect url::#{url}"
    @server_service.on_one_worker_connect(url)
end

Private Instance Methods

client_init(server_addr='127.0.0.1',my_port=nil) click to toggle source
# File lib/woolen_common/drb_helper.rb, line 91
def client_init(server_addr='127.0.0.1',my_port=nil)
    the_port = my_port
    if my_port
        @my_url = "druby://0.0.0.0:#{my_port}"
        @me_service = start_service(@my_url,self)
    else
        100.times do
            begin
                port = get_rand_port
                the_port = port
                if server_addr == '127.0.0.1'
                    @my_url = "druby://127.0.0.1:#{port}"
                else
                    @my_url = "druby://0.0.0.0:#{port}"
                end
                debug "client need to try url #{@my_url}"
                @me_service = start_service(@my_url,self)
                break
            rescue Exception => e
                error "在使用随机端口时出错了#{e.message}"
                retry
            end
        end
    end
    debug "server addr ::#{server_addr},port#{SERVER_DEFAULT_PORT}"
    server_str = ip_or_iport_with_default(server_addr,SERVER_DEFAULT_PORT)
    @server_service = get_drb_connect_obj(server_str)
    url = "druby://#{DEFAULT_CLIENT_ADDR}:#{the_port}"
    debug "the server#{@server_service}need to invoke worker connect url::#{url}"
    @server_service.on_one_worker_connect(url)
end