Class: Resque::Durable::QueueAudit
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Resque::Durable::QueueAudit
- Extended by:
- Recovery
- Defined in:
- lib/resque/durable/queue_audit.rb
Defined Under Namespace
Modules: Recovery
Constant Summary collapse
- DEFAULT_DURATION =
id enqueued_id queue_name payload enqueue_count enqueued_at completed_at timeout_at updated_at created_at
10.minutes
Class Method Summary collapse
Instance Method Summary collapse
- #complete! ⇒ Object
- #complete? ⇒ Boolean
-
#delay ⇒ Object
1, 8, 27, 64, 125, 216, etc.
- #duration ⇒ Object
- #enqueue ⇒ Object
- #enqueued! ⇒ Object
- #fail! ⇒ Object
- #heartbeat! ⇒ Object
- #job_klass ⇒ Object
- #job_klass=(klass) ⇒ Object
- #payload ⇒ Object
- #payload=(value) ⇒ Object
- #queue ⇒ Object
- #retryable? ⇒ Boolean
Methods included from Recovery
Class Method Details
Instance Method Details
#complete! ⇒ Object
103 104 105 106 |
# File 'lib/resque/durable/queue_audit.rb', line 103 def complete! self.completed_at = Time.now.utc save! end |
#complete? ⇒ Boolean
108 109 110 |
# File 'lib/resque/durable/queue_audit.rb', line 108 def complete? completed_at.present? end |
#delay ⇒ Object
1, 8, 27, 64, 125, 216, etc. minutes.
117 118 119 |
# File 'lib/resque/durable/queue_audit.rb', line 117 def delay (enqueue_count ** 3).minutes end |
#duration ⇒ Object
84 85 86 |
# File 'lib/resque/durable/queue_audit.rb', line 84 def duration job_klass.job_timeout end |
#enqueue ⇒ Object
80 81 82 |
# File 'lib/resque/durable/queue_audit.rb', line 80 def enqueue job_klass.enqueue(*(payload.push(self))) end |
#enqueued! ⇒ Object
96 97 98 99 100 101 |
# File 'lib/resque/durable/queue_audit.rb', line 96 def enqueued! self.enqueued_at = Time.now.utc self.timeout_at = enqueued_at + duration self.enqueue_count += 1 save! end |
#fail! ⇒ Object
92 93 94 |
# File 'lib/resque/durable/queue_audit.rb', line 92 def fail! update_attribute(:timeout_at, Time.now.utc) end |
#heartbeat! ⇒ Object
88 89 90 |
# File 'lib/resque/durable/queue_audit.rb', line 88 def heartbeat! update_attribute(:timeout_at, Time.now.utc + duration) end |
#job_klass ⇒ Object
60 61 62 |
# File 'lib/resque/durable/queue_audit.rb', line 60 def job_klass read_attribute(:job_klass).constantize end |
#job_klass=(klass) ⇒ Object
64 65 66 |
# File 'lib/resque/durable/queue_audit.rb', line 64 def job_klass=(klass) write_attribute(:job_klass, klass.to_s) end |
#payload ⇒ Object
68 69 70 |
# File 'lib/resque/durable/queue_audit.rb', line 68 def payload ActiveSupport::JSON.decode(super) end |
#payload=(value) ⇒ Object
72 73 74 |
# File 'lib/resque/durable/queue_audit.rb', line 72 def payload=(value) super value.to_json end |
#queue ⇒ Object
76 77 78 |
# File 'lib/resque/durable/queue_audit.rb', line 76 def queue Resque.queue_from_class(job_klass) end |
#retryable? ⇒ Boolean
112 113 114 |
# File 'lib/resque/durable/queue_audit.rb', line 112 def retryable? Time.now.utc > (timeout_at + delay) end |