class Writefully::Tools::Retryer

Attributes

job[RW]

Public Instance Methods

delay() click to toggle source
# File lib/writefully/tools/retryer.rb, line 21
def delay
  (job[:message][:tries] * job[:message][:tries]).seconds
end
mark_as_failed() click to toggle source
# File lib/writefully/tools/retryer.rb, line 25
def mark_as_failed
  Writefully.redis.with { |c| c.sadd 'failed', Marshal.dump(job) }
end
queue_retry() click to toggle source
# File lib/writefully/tools/retryer.rb, line 17
def queue_retry
  Writefully.add_job job[:worker], job[:message].merge({ run: true })
end
retry(job) click to toggle source
# File lib/writefully/tools/retryer.rb, line 8
def retry(job)
  @job   = job
  if job[:message][:tries] <= 5
    after(delay) { queue_retry }
  else
    mark_as_failed
  end 
end