Class: BeetleETL::AsyncStepRunner
- Inherits:
-
Object
- Object
- BeetleETL::AsyncStepRunner
- Defined in:
- lib/beetle_etl/step_runner/async_step_runner.rb
Instance Method Summary collapse
-
#initialize(steps) ⇒ AsyncStepRunner
constructor
A new instance of AsyncStepRunner.
- #run ⇒ Object
Constructor Details
#initialize(steps) ⇒ AsyncStepRunner
Returns a new instance of AsyncStepRunner.
4 5 6 7 8 9 10 11 |
# File 'lib/beetle_etl/step_runner/async_step_runner.rb', line 4 def initialize(steps) @dependency_resolver = DependencyResolver.new(steps) @steps = steps @queue = Queue.new @completed = Set.new @running = Set.new end |
Instance Method Details
#run ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/beetle_etl/step_runner/async_step_runner.rb', line 13 def run results = {} until all_steps_complete? runnables.each do |step| run_step_async(step) mark_step_running(step.name) end table_name, step_name, step_data = @queue.pop unless results.has_key?(table_name) results[table_name] = {} end results[table_name][step_name] = step_data mark_step_completed(step_name) end results end |