Class: Massive::Process
- Inherits:
-
Object
- Object
- Massive::Process
- Includes:
- Mongoid::Document, Mongoid::Timestamps
- Defined in:
- lib/massive/process.rb
Direct Known Subclasses
Class Method Summary collapse
Instance Method Summary collapse
- #active_model_serializer ⇒ Object
- #cancel ⇒ Object
- #cancelled? ⇒ Boolean
- #completed? ⇒ Boolean
- #enqueue_next ⇒ Object
- #failed? ⇒ Boolean
- #next_step ⇒ Object
- #processed_percentage ⇒ Object
Class Method Details
.find_job(process_id, step_id, job_id) ⇒ Object
14 15 16 |
# File 'lib/massive/process.rb', line 14 def self.find_job(process_id, step_id, job_id) find_step(process_id, step_id).jobs.find(job_id) end |
.find_step(process_id, step_id) ⇒ Object
10 11 12 |
# File 'lib/massive/process.rb', line 10 def self.find_step(process_id, step_id) find(process_id).steps.find(step_id) end |
Instance Method Details
#active_model_serializer ⇒ Object
49 50 51 |
# File 'lib/massive/process.rb', line 49 def active_model_serializer super || Massive::ProcessSerializer end |
#cancel ⇒ Object
43 44 45 46 47 |
# File 'lib/massive/process.rb', line 43 def cancel self.cancelled_at = Time.now redis.setex(cancelled_key, 1.day, true) save end |
#cancelled? ⇒ Boolean
39 40 41 |
# File 'lib/massive/process.rb', line 39 def cancelled? cancelled_at? || redis.exists(cancelled_key) end |
#completed? ⇒ Boolean
31 32 33 |
# File 'lib/massive/process.rb', line 31 def completed? steps.not_completed.none? end |
#enqueue_next ⇒ Object
18 19 20 |
# File 'lib/massive/process.rb', line 18 def enqueue_next next_step.try(:enqueue) end |
#failed? ⇒ Boolean
35 36 37 |
# File 'lib/massive/process.rb', line 35 def failed? steps.any? { |step| step.failed_at? } end |
#next_step ⇒ Object
22 23 24 25 |
# File 'lib/massive/process.rb', line 22 def next_step step = steps.not_completed.not_started.first step.try(:enqueued?) ? nil : step end |
#processed_percentage ⇒ Object
27 28 29 |
# File 'lib/massive/process.rb', line 27 def processed_percentage total_weight > 0 ? total_steps_processed_percentage.to_f / total_weight : 0 end |