module Qs

Constants

InvalidEventHandlerError
InvalidJobHandlerError
NotFoundError
ShutdownError
TimeoutError
UninitializedError
VERSION

Public Class Methods

clear_subscriptions(queue) click to toggle source
# File lib/qs.rb, line 71
def self.clear_subscriptions(queue)
  self.client.clear_subscriptions(queue)
end
client() click to toggle source
# File lib/qs.rb, line 79
def self.client
  @client || NullClient.new
end
config() click to toggle source
# File lib/qs.rb, line 11
def self.config; @config ||= Config.new; end
configure(&block) click to toggle source
# File lib/qs.rb, line 12
def self.configure(&block)
  block.call(self.config)
end
daemon(no_chdir = false, no_close = false) click to toggle source

Full explanation: www.steve.org.uk/Reference/Unix/faq_2.html#SEC16

# File lib/qs/process.rb, line 169
def self.daemon(no_chdir = false, no_close = false)
  exit if fork
  ::Process.setsid
  exit if fork
  Dir.chdir '/' unless no_chdir
  if !no_close
    null = File.open('/dev/null', 'w')
    STDIN.reopen null
    STDOUT.reopen null
    STDERR.reopen null
  end
  return 0
end
decode(encoded_payload) click to toggle source
# File lib/qs.rb, line 63
def self.decode(encoded_payload)
  @decoder.call(encoded_payload)
end
dispatcher_job_name() click to toggle source
# File lib/qs.rb, line 95
def self.dispatcher_job_name
  self.config.dispatcher_job_name
end
dispatcher_queue() click to toggle source
# File lib/qs.rb, line 91
def self.dispatcher_queue
  @dispatcher_queue
end
encode(payload) click to toggle source
# File lib/qs.rb, line 59
def self.encode(payload)
  @encoder.call(payload)
end
enqueue(queue, job_name, params = nil) click to toggle source
# File lib/qs.rb, line 43
def self.enqueue(queue, job_name, params = nil)
  self.client.enqueue(queue, job_name, params)
end
event_publisher() click to toggle source
# File lib/qs.rb, line 99
def self.event_publisher
  self.config.event_publisher
end
event_subscribers(event) click to toggle source
# File lib/qs.rb, line 75
def self.event_subscribers(event)
  self.client.event_subscribers(event)
end
init() click to toggle source
# File lib/qs.rb, line 16
def self.init
  self.config.validate!

  @dispatcher_queue ||= DispatcherQueue.new({
    :queue_class            => self.config.dispatcher_queue_class,
    :queue_name             => self.config.dispatcher_queue_name,
    :job_name               => self.config.dispatcher_job_name,
    :job_handler_class_name => self.config.dispatcher_job_handler_class_name
  })

  @encoder ||= self.config.encoder
  @decoder ||= self.config.decoder
  @client  ||= Client.new(self.redis_connect_hash)
  @redis   ||= @client.redis
  true
end
publish(channel, name, params = nil) click to toggle source
# File lib/qs.rb, line 47
def self.publish(channel, name, params = nil)
  self.client.publish(channel, name, params)
end
publish_as(publisher, channel, name, params = nil) click to toggle source
# File lib/qs.rb, line 51
def self.publish_as(publisher, channel, name, params = nil)
  self.client.publish_as(publisher, channel, name, params)
end
published_events() click to toggle source
# File lib/qs.rb, line 103
def self.published_events
  self.dispatcher_queue.published_events
end
push(queue_name, payload) click to toggle source
# File lib/qs.rb, line 55
def self.push(queue_name, payload)
  self.client.push(queue_name, payload)
end
redis() click to toggle source
# File lib/qs.rb, line 83
def self.redis
  @redis
end
redis_connect_hash() click to toggle source
# File lib/qs.rb, line 87
def self.redis_connect_hash
  self.config.redis_connect_hash
end
reset!() click to toggle source
# File lib/qs.rb, line 33
def self.reset!
  @config           = nil
  @dispatcher_queue = nil
  @encoder          = nil
  @decoder          = nil
  @client           = nil
  @redis            = nil
  true
end
sync_subscriptions(queue) click to toggle source
# File lib/qs.rb, line 67
def self.sync_subscriptions(queue)
  self.client.sync_subscriptions(queue)
end