Class: Redom::Worker

Inherits:
Object
  • Object
show all
Includes:
Utils
Defined in:
lib/redom/worker.rb

Instance Method Summary collapse

Methods included from Utils

#_dispatcher, #_logger, dispatcher=, logger=

Constructor Details

#initializeWorker

Returns a new instance of Worker.



5
6
7
# File 'lib/redom/worker.rb', line 5

def initialize
  @queue = Queue.new
end

Instance Method Details

#do_task(task) ⇒ Object



30
31
32
# File 'lib/redom/worker.rb', line 30

def do_task(task)
  @queue.push task
end

#startObject



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/redom/worker.rb', line 9

def start
  @thread = Thread.start do
    while task = @queue.pop
      begin
        task.resume
      rescue
        _logger.error "Task failed. ID='#{task.__id__}'\n"
        _logger.error $!.message
        $!.backtrace.each { |item|
          _logger.error item
        }
      end
    end
  end
end

#stopObject



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

def stop
  @thread.kill
  @queue.clear
end