Class: Threasy::Work::Worker
- Inherits:
-
Object
- Object
- Threasy::Work::Worker
- Defined in:
- lib/threasy/work.rb
Instance Method Summary collapse
-
#initialize(work, id) ⇒ Worker
constructor
A new instance of Worker.
- #log ⇒ Object
- #work ⇒ Object
Constructor Details
#initialize(work, id) ⇒ Worker
Returns a new instance of Worker.
84 85 86 87 |
# File 'lib/threasy/work.rb', line 84 def initialize(work, id) @work = work @id = id end |
Instance Method Details
#log ⇒ Object
105 106 107 |
# File 'lib/threasy/work.rb', line 105 def log Threasy.logger end |
#work ⇒ Object
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
# File 'lib/threasy/work.rb', line 89 def work Thread.start do while job = @work.grab log.debug "Worker ##{@id} has grabbed a job" begin job = eval(job) if job.kind_of?(String) job.respond_to?(:perform) ? job.perform : job.call rescue Exception => e log.error %|Worker ##{@id} error: #{e.message}\n#{e.backtrace.join("\n")}| end end log.debug "Worker ##{@id} removing self from pool" @work.sync{ @work.pool.delete self } end end |