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, #queue, #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
Returns a new instance of Concurrent.
171 172 173 174 |
# File 'lib/taskinator/process.rb', line 171 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.
169 170 171 |
# File 'lib/taskinator/process.rb', line 169 def complete_on @complete_on end |
Instance Method Details
#accept(visitor) ⇒ Object
199 200 201 202 |
# File 'lib/taskinator/process.rb', line 199 def accept(visitor) super visitor.visit_attribute(:complete_on) end |
#start ⇒ Object
176 177 178 179 180 181 182 |
# File 'lib/taskinator/process.rb', line 176 def start if tasks.any? tasks.each(&:enqueue!) else complete! # weren't any tasks to start with end end |
#task_completed(task) ⇒ Object
184 185 186 187 188 |
# File 'lib/taskinator/process.rb', line 184 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
190 191 192 193 194 195 196 197 |
# File 'lib/taskinator/process.rb', line 190 def tasks_completed?(*args) # TODO: optimize this if (complete_on == CompleteOn::First) tasks.any?(&:completed?) else tasks.all?(&:completed?) end end |