Class: Writefully::Tools::Retryer
- Inherits:
-
Object
- Object
- Writefully::Tools::Retryer
- Includes:
- Celluloid
- Defined in:
- lib/writefully/tools/retryer.rb
Instance Attribute Summary collapse
-
#job ⇒ Object
Returns the value of attribute job.
Instance Method Summary collapse
Instance Attribute Details
#job ⇒ Object
Returns the value of attribute job.
6 7 8 |
# File 'lib/writefully/tools/retryer.rb', line 6 def job @job end |
Instance Method Details
#delay ⇒ Object
21 22 23 |
# File 'lib/writefully/tools/retryer.rb', line 21 def delay (job[:message][:tries] * job[:message][:tries]).seconds end |
#mark_as_failed ⇒ Object
25 26 27 |
# 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 ⇒ Object
17 18 19 |
# File 'lib/writefully/tools/retryer.rb', line 17 def queue_retry Writefully.add_job job[:worker], job[:message].merge({ run: true }) end |
#retry(job) ⇒ Object
8 9 10 11 12 13 14 15 |
# 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 |