Module: Qs

Defined in:
lib/qs.rb,
lib/qs/cli.rb,
lib/qs/job.rb,
lib/qs/event.rb,
lib/qs/queue.rb,
lib/qs/route.rb,
lib/qs/client.rb,
lib/qs/daemon.rb,
lib/qs/logger.rb,
lib/qs/runner.rb,
lib/qs/worker.rb,
lib/qs/io_pipe.rb,
lib/qs/message.rb,
lib/qs/payload.rb,
lib/qs/process.rb,
lib/qs/version.rb,
lib/qs/pid_file.rb,
lib/qs/qs_runner.rb,
lib/qs/queue_item.rb,
lib/qs/config_file.rb,
lib/qs/daemon_data.rb,
lib/qs/job_handler.rb,
lib/qs/test_runner.rb,
lib/qs/dispatch_job.rb,
lib/qs/error_handler.rb,
lib/qs/event_handler.rb,
lib/qs/process_signal.rb,
lib/qs/message_handler.rb,
lib/qs/payload_handler.rb,
lib/qs/dispatcher_queue.rb,
lib/qs/dispatch_job_handler.rb

Defined Under Namespace

Modules: Client, Daemon, DispatchJobHandler, DispatcherQueue, EventHandler, JobHandler, MessageHandler, Payload, RedisUrl, Worker Classes: CLI, CLIRB, Config, ConfigFile, DaemonData, DispatchJob, ErrorContext, ErrorHandler, Event, EventTestRunner, IOPipe, Job, JobTestRunner, Logger, Message, NoHandlerClassError, NullClient, NullLogger, PIDFile, PayloadHandler, Process, ProcessSignal, QsClient, QsRunner, Queue, QueueItem, RestartCmd, Route, Runner, TestClient, TestRunner

Constant Summary collapse

UninitializedError =
Class.new(RuntimeError)
TimeoutError =
Class.new(RuntimeError)
VERSION =
"0.8.1"
NotFoundError =
Class.new(RuntimeError)
InvalidJobHandlerError =
Class.new(StandardError)
InvalidEventHandlerError =
Class.new(StandardError)
ShutdownError =
Class.new(DatWorkerPool::ShutdownError)

Class Method Summary collapse

Class Method Details

.clear_subscriptions(queue) ⇒ Object



71
72
73
# File 'lib/qs.rb', line 71

def self.clear_subscriptions(queue)
  self.client.clear_subscriptions(queue)
end

.clientObject



79
80
81
# File 'lib/qs.rb', line 79

def self.client
  @client || NullClient.new
end

.configObject



11
# File 'lib/qs.rb', line 11

def self.config; @config ||= Config.new; end

.configure(&block) ⇒ Object



12
13
14
# File 'lib/qs.rb', line 12

def self.configure(&block)
  block.call(self.config)
end

.decode(encoded_payload) ⇒ Object



63
64
65
# File 'lib/qs.rb', line 63

def self.decode(encoded_payload)
  @decoder.call(encoded_payload)
end

.dispatcher_job_nameObject



95
96
97
# File 'lib/qs.rb', line 95

def self.dispatcher_job_name
  self.config.dispatcher_job_name
end

.dispatcher_queueObject



91
92
93
# File 'lib/qs.rb', line 91

def self.dispatcher_queue
  @dispatcher_queue
end

.encode(payload) ⇒ Object



59
60
61
# File 'lib/qs.rb', line 59

def self.encode(payload)
  @encoder.call(payload)
end

.enqueue(queue, job_name, params = nil) ⇒ Object



43
44
45
# File 'lib/qs.rb', line 43

def self.enqueue(queue, job_name, params = nil)
  self.client.enqueue(queue, job_name, params)
end

.event_publisherObject



99
100
101
# File 'lib/qs.rb', line 99

def self.event_publisher
  self.config.event_publisher
end

.event_subscribers(event) ⇒ Object



75
76
77
# File 'lib/qs.rb', line 75

def self.event_subscribers(event)
  self.client.event_subscribers(event)
end

.initObject



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 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) ⇒ Object



47
48
49
# 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) ⇒ Object



51
52
53
# 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_eventsObject



103
104
105
# File 'lib/qs.rb', line 103

def self.published_events
  self.dispatcher_queue.published_events
end

.push(queue_name, payload) ⇒ Object



55
56
57
# File 'lib/qs.rb', line 55

def self.push(queue_name, payload)
  self.client.push(queue_name, payload)
end

.redisObject



83
84
85
# File 'lib/qs.rb', line 83

def self.redis
  @redis
end

.redis_connect_hashObject



87
88
89
# File 'lib/qs.rb', line 87

def self.redis_connect_hash
  self.config.redis_connect_hash
end

.reset!Object



33
34
35
36
37
38
39
40
41
# 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) ⇒ Object



67
68
69
# File 'lib/qs.rb', line 67

def self.sync_subscriptions(queue)
  self.client.sync_subscriptions(queue)
end