Class: SimpleWorker::RetryListener

Inherits:
AbstractListener show all
Includes:
RedisSupport
Defined in:
lib/simpleworker/retry_listener.rb

Instance Attribute Summary collapse

Attributes included from RedisSupport

#jobid, #namespace

Instance Method Summary collapse

Methods inherited from AbstractListener

#on_interrupted, #on_log, #on_node_start, #on_node_stop, #on_start, #on_stop, #on_task_active, #on_task_start, #on_task_stop, #on_timeout, #update

Constructor Details

#initialize(redis, max_retries, namespace, jobid) ⇒ RetryListener

Returns a new instance of RetryListener.



8
9
10
11
12
13
14
# File 'lib/simpleworker/retry_listener.rb', line 8

def initialize(redis, max_retries, namespace, jobid)
  @redis       = redis
  @max_retries = max_retries
  @namespace   = namespace
  @jobid       = jobid
  @tracker     = {}
end

Instance Attribute Details

#max_retriesObject (readonly)

Returns the value of attribute max_retries.



6
7
8
# File 'lib/simpleworker/retry_listener.rb', line 6

def max_retries
  @max_retries
end

Instance Method Details

#on_task_expire(hostname, task) ⇒ Object



16
17
18
19
20
21
22
23
24
# File 'lib/simpleworker/retry_listener.rb', line 16

def on_task_expire(hostname, task)
  # warning nil converted to 0
  count = @tracker[task].to_i

  if count < max_retries
    fire_retry task
    @tracker[task] = (count + 1)
  end
end