Module: ThreadedInMemoryQueue

Extended by:
Inline
Defined in:
lib/threaded_in_memory_queue.rb,
lib/threaded_in_memory_queue/errors.rb,
lib/threaded_in_memory_queue/inline.rb,
lib/threaded_in_memory_queue/master.rb,
lib/threaded_in_memory_queue/worker.rb,
lib/threaded_in_memory_queue/timeout.rb,
lib/threaded_in_memory_queue/version.rb

Defined Under Namespace

Modules: Inline, Timeout Classes: Master, NoWorkersError, Worker, WorkerNotStarted

Constant Summary collapse

VERSION =
"0.0.1"

Class Attribute Summary collapse

Class Method Summary collapse

Methods included from Inline

inline, inline=, inline?

Class Attribute Details

.loggerObject

Returns the value of attribute logger.



13
14
15
# File 'lib/threaded_in_memory_queue.rb', line 13

def logger
  @logger
end

Class Method Details

.enqueue(klass, *args) ⇒ Object

Raises:



30
31
32
33
34
# File 'lib/threaded_in_memory_queue.rb', line 30

def self.enqueue(klass, *args)
  raise NoWorkersError, "must start worker before enqueueing jobs" unless master
  master.enqueue(klass, *args)
  return true
end

.masterObject



22
23
24
# File 'lib/threaded_in_memory_queue.rb', line 22

def self.master
  Thread.current[:threaded_in_memory_queue_master]
end

.master=(master) ⇒ Object



26
27
28
# File 'lib/threaded_in_memory_queue.rb', line 26

def self.master=(master)
  Thread.current[:threaded_in_memory_queue_master] = master
end

.start(options = {}) ⇒ Object



16
17
18
19
20
# File 'lib/threaded_in_memory_queue.rb', line 16

def self.start(options = {})
  self.logger = options[:logger] if options[:logger]
  self.master = Master.new(options).start
  return self
end

.stop(timeout = 10) ⇒ Object



36
37
38
39
40
# File 'lib/threaded_in_memory_queue.rb', line 36

def self.stop(timeout = 10)
  return true unless master
  master.stop(timeout)
  return true
end