Class: Chimp::QueueWorker
- Inherits:
-
Object
- Object
- Chimp::QueueWorker
- Defined in:
- lib/right_chimp/queue/QueueWorker.rb
Instance Attribute Summary collapse
-
#delay ⇒ Object
Returns the value of attribute delay.
-
#never_exit ⇒ Object
Returns the value of attribute never_exit.
-
#retry_count ⇒ Object
Returns the value of attribute retry_count.
Instance Method Summary collapse
-
#initialize ⇒ QueueWorker
constructor
A new instance of QueueWorker.
-
#run ⇒ Object
Grab work items from the ChimpQueue and process them Only stop is @ever_exit is false.
Constructor Details
#initialize ⇒ QueueWorker
Returns a new instance of QueueWorker.
9 10 11 12 13 |
# File 'lib/right_chimp/queue/QueueWorker.rb', line 9 def initialize @delay = 0 @retry_count = 0 @never_exit = true end |
Instance Attribute Details
#delay ⇒ Object
Returns the value of attribute delay.
7 8 9 |
# File 'lib/right_chimp/queue/QueueWorker.rb', line 7 def delay @delay end |
#never_exit ⇒ Object
Returns the value of attribute never_exit.
7 8 9 |
# File 'lib/right_chimp/queue/QueueWorker.rb', line 7 def never_exit @never_exit end |
#retry_count ⇒ Object
Returns the value of attribute retry_count.
7 8 9 |
# File 'lib/right_chimp/queue/QueueWorker.rb', line 7 def retry_count @retry_count end |
Instance Method Details
#run ⇒ Object
Grab work items from the ChimpQueue and process them Only stop is @ever_exit is false
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/right_chimp/queue/QueueWorker.rb', line 19 def run while @never_exit work_item = ChimpQueue.instance.shift() begin if work_item != nil work_item.retry_count = @retry_count work_item.owner = Thread.current.object_id work_item.run sleep @delay else sleep 1 end rescue Exception => ex Log.error "Exception in QueueWorker.run: #{ex}" Log.debug ex.inspect Log.debug ex.backtrace work_item.status = Executor::STATUS_ERROR work_item.error = ex end end end |