class RseProxy::PassThru
Public Class Methods
new(serversx=[], servers: serversx, log: nil )
click to toggle source
# File lib/rse.rb, line 99 def initialize(serversx=[], servers: serversx, log: nil ) DRb.start_service @servers = servers.map do |x| host, port = x.is_a?(Hash) ? [x[:host], x[:port]] : x end @log = Logger.new log, 'daily' if log end
Public Instance Methods
delete()
click to toggle source
# File lib/rse.rb, line 113 def delete() fetch_server() { |rse| rse.delete } end
fetch_server() { |rse| ... }
click to toggle source
# File lib/rse.rb, line 142 def fetch_server() begin servers = @servers.clone server = servers.shift host, port = server rse = DRbObject.new_with_uri("druby://#{host}:#{port}") yield(rse) if block_given? rescue puts ($!).inspect @log.warn "server #{host}:#{port} down" if @log retry if servers.any? end end
get()
click to toggle source
# File lib/rse.rb, line 117 def get() fetch_server() { |rse| rse.get } end
package_methods(name)
click to toggle source
# File lib/rse.rb, line 129 def package_methods(name) fetch_server() { |rse| rse.package_methods(name) } end
post()
click to toggle source
# File lib/rse.rb, line 125 def post() fetch_server() { |rse| rse.post } end
put()
click to toggle source
# File lib/rse.rb, line 121 def put() fetch_server() { |rse| rse.put } end
run_job(package, job, params={}, *args)
click to toggle source
# File lib/rse.rb, line 133 def run_job(package, job, params={}, *args) @log.info "package: %s, job: %s, params: %s, args: %s" \ % [package, job, params, args] if @log fetch_server() { |rse| rse.run_job package, job, params, *args } end
type()
click to toggle source
# File lib/rse.rb, line 163 def type() fetch_server() { |rse| rse.type } end
type=(s)
click to toggle source
# File lib/rse.rb, line 167 def type=(s) fetch_server() { |rse| rse.type=(s) } end
Private Instance Methods
method_missing(method_name, *args)
click to toggle source
# File lib/rse.rb, line 173 def method_missing(method_name, *args) fetch_server() { |rse| rse.get.method(method_name).call(*args) } end