Module: ThreadedInMemoryQueue

Extended by:
ThreadedInMemoryQueue
Included in:
ThreadedInMemoryQueue
Defined in:
lib/threaded_in_memory_queue.rb,
lib/threaded_in_memory_queue/errors.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: Timeout Classes: Master, NoWorkersError, Worker, WorkerNotStarted

Constant Summary collapse

STOP_TIMEOUT =

seconds

10
VERSION =
"0.0.4"

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#inlineObject Also known as: inline?

Returns the value of attribute inline.



11
12
13
# File 'lib/threaded_in_memory_queue.rb', line 11

def inline
  @inline
end

#loggerObject

Returns the value of attribute logger.



11
12
13
# File 'lib/threaded_in_memory_queue.rb', line 11

def logger
  @logger
end

#sizeObject

Returns the value of attribute size.



11
12
13
# File 'lib/threaded_in_memory_queue.rb', line 11

def size
  @size
end

#timeoutObject

Returns the value of attribute timeout.



11
12
13
# File 'lib/threaded_in_memory_queue.rb', line 11

def timeout
  @timeout
end

Instance Method Details

#configure {|_self| ... } ⇒ Object Also known as: config

Yields:

  • (_self)

Yield Parameters:



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

def configure(&block)
  raise "Queue is already started, must configure queue before starting" if started?
  yield self
end

#enqueue(job, *args) ⇒ Object



48
49
50
51
52
53
54
55
56
# File 'lib/threaded_in_memory_queue.rb', line 48

def enqueue(job, *args)
  if inline?
    job.call(*args)
  else
    raise NoWorkersError unless started?
    master.enqueue(job, *args)
  end
  return true
end

#masterObject



40
41
42
# File 'lib/threaded_in_memory_queue.rb', line 40

def master
  @master
end

#master=(master) ⇒ Object



44
45
46
# File 'lib/threaded_in_memory_queue.rb', line 44

def master=(master)
  @master = master
end

#start(options = {}) ⇒ Object



14
15
16
17
18
19
20
21
22
23
# File 'lib/threaded_in_memory_queue.rb', line 14

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

#started?Boolean

Returns:

  • (Boolean)


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

def started?
  return false unless master
  master.alive?
end

#stop(timeout = STOP_TIMEOUT) ⇒ Object



58
59
60
61
62
# File 'lib/threaded_in_memory_queue.rb', line 58

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

#stopped?Boolean

Returns:

  • (Boolean)


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

def stopped?
  !started?
end