module Wamp::Worker
Constants
- DEFAULT
- VERSION
Public Class Methods
config()
click to toggle source
Returns the config object
# File lib/wamp/worker.rb, line 29 def self.config unless defined?(@config) @config = Config.new end @config end
configure(name=nil, &callback)
click to toggle source
Method to configure the worker
@param name [Symbol] - The name of the connection
# File lib/wamp/worker.rb, line 52 def self.configure(name=nil, &callback) ConfigProxy.new(self.config, name).configure(&callback) end
log_level=(log_level)
click to toggle source
Sets the log level
@param log_level [Symbol] - the desired log level
# File lib/wamp/worker.rb, line 45 def self.log_level=(log_level) Wamp::Client.log_level = log_level end
logger()
click to toggle source
Returns the logger object
# File lib/wamp/worker.rb, line 38 def self.logger Wamp::Client.logger end
register_procedures(name, proxy, session)
click to toggle source
Registers procedures
@param name [Symbol] - The name of the connection @param proxy [Wamp::Worker::Proxy] - The proxy that will be used by the handler @param session [Wamp::Client::Session] - The session
# File lib/wamp/worker.rb, line 74 def self.register_procedures(name, proxy, session) Wamp::Worker.config.registrations(name).each do |r| handler = -> a,k,d { self.logger.debug("#{self.name} invoking handler '#{r.klass}##{r.method}' for procedure '#{r.procedure}'") r.klass.create(proxy, :procedure, a, k, d).invoke(r.method) } session.register(r.procedure, handler, r.options) do |result, error, details| if error self.logger.error("#{self.name} register failed '#{r.klass}##{r.method}' for procedure '#{r.procedure}'") self.logger.error(" error: #{error.inspect}") else self.logger.info("#{self.name} registered for '#{r.klass}##{r.method}' for procedure '#{r.procedure}'") end end end end
run(name=nil, **args)
click to toggle source
Method to start a worker
@param name [Symbol] - The name of the connection
# File lib/wamp/worker.rb, line 59 def self.run(name=nil, **args) name ||= DEFAULT # Get the connection info options = Wamp::Worker.config.connection(name).merge(args) # Create the runner and start it Runner::Main.new(name, **options).start end
subscribe_topics(name, proxy, session)
click to toggle source
Subscribe to topics
@param name [Symbol] - The name of the connection @param proxy [Wamp::Worker::Proxy] - The proxy that will be used by the handler @param session [Wamp::Client::Session] - The session
# File lib/wamp/worker.rb, line 96 def self.subscribe_topics(name, proxy, session) Wamp::Worker.config.subscriptions(name).each do |s| handler = -> a, k, d { self.logger.debug("#{self.name} invoking handler '#{s.klass}##{s.method}' for subscription '#{s.topic}'") s.klass.create(proxy, :subscription, a, k, d).invoke(s.method) } session.subscribe(s.topic, handler, s.options) do |result, error, details| if error self.logger.error("#{self.name} subscribe failed '#{s.klass}##{s.method}' for topic '#{s.topic}'") self.logger.error(" error: #{error.inspect}") else self.logger.info("#{self.name} subscribed '#{s.klass}##{s.method}' for topic '#{s.topic}'") end end end end