Class: Taskinator::Process::Concurrent
- Inherits:
-
Taskinator::Process
- Object
- Taskinator::Process
- Taskinator::Process::Concurrent
- Defined in:
- lib/taskinator/process.rb
Instance Attribute Summary collapse
-
#complete_on ⇒ Object
readonly
Returns the value of attribute complete_on.
Attributes inherited from Taskinator::Process
#definition, #options, #parent, #uuid
Instance Method Summary collapse
- #accept(visitor) ⇒ Object
-
#initialize(definition, complete_on = CompleteOn::Default, options = {}) ⇒ Concurrent
constructor
A new instance of Concurrent.
- #start ⇒ Object
- #task_completed(task) ⇒ Object
- #tasks_completed?(*args) ⇒ Boolean
Methods inherited from Taskinator::Process
#<=>, base_key, define_concurrent_process_for, define_sequential_process_for, #enqueue, #no_tasks_defined?, #on_completed_entry, #on_failed_entry, #task_failed, #tasks, #to_s
Methods included from Taskinator::Persistence
add_process_to_list, included, list_key
Constructor Details
#initialize(definition, complete_on = CompleteOn::Default, options = {}) ⇒ Concurrent
167 168 169 170 |
# File 'lib/taskinator/process.rb', line 167 def initialize(definition, complete_on=CompleteOn::Default, ={}) super(definition, ) @complete_on = complete_on end |
Instance Attribute Details
#complete_on ⇒ Object (readonly)
Returns the value of attribute complete_on.
165 166 167 |
# File 'lib/taskinator/process.rb', line 165 def complete_on @complete_on end |
Instance Method Details
#accept(visitor) ⇒ Object
195 196 197 198 |
# File 'lib/taskinator/process.rb', line 195 def accept(visitor) super visitor.visit_attribute(:complete_on) end |
#start ⇒ Object
172 173 174 175 176 177 178 |
# File 'lib/taskinator/process.rb', line 172 def start if tasks.any? tasks.each(&:enqueue!) else complete! # weren't any tasks to start with end end |
#task_completed(task) ⇒ Object
180 181 182 183 184 |
# File 'lib/taskinator/process.rb', line 180 def task_completed(task) # when complete on first, then don't bother with subsequent tasks completing return if completed? || failed? complete! if can_complete? end |
#tasks_completed?(*args) ⇒ Boolean
186 187 188 189 190 191 192 193 |
# File 'lib/taskinator/process.rb', line 186 def tasks_completed?(*args) # TODO: optimize this if (complete_on == CompleteOn::First) tasks.any?(&:completed?) else tasks.all?(&:completed?) end end |