Module: Havanna

Defined in:
lib/havanna.rb,
lib/havanna/worker.rb

Defined Under Namespace

Classes: Worker

Constant Summary collapse

VERSION =
"1.1.0"

Class Method Summary collapse

Class Method Details

.connect(*args) ⇒ Object



6
7
8
9
# File 'lib/havanna.rb', line 6

def self.connect(*args)
  @connect = args
  @disque = Disque.new(*args)
end

.push(*args) ⇒ Object



29
30
31
# File 'lib/havanna.rb', line 29

def self.push(*args)
  @disque.push(*args)
end

.start(name, handler) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/havanna.rb', line 11

def self.start(name, handler)
  begin
    disque = Disque.new(*@connect)

    printf("Started worker %s\n", name)

    loop do
      disque.fetch(from: [name], timeout: 5000) do |job|
        handler.call(job)
      end

      break if @stop
    end
  ensure
    disque.quit
  end
end

.stopObject



33
34
35
# File 'lib/havanna.rb', line 33

def self.stop
  @stop = true
end