Sha256: 2ab8882a61af8a3deae7106cf2b7df0098e39cced19c4433f7d64c05753712a6
Contents?: true
Size: 1.52 KB
Versions: 2
Compression:
Stored size: 1.52 KB
Contents
#!/usr/bin/env ruby # frozen_string_literal: true example_description = <<DESC Sub Plans Example =================== This example shows, how to trigger the execution plans from within a run method of some action and waing for them to finish. This is useful, when doing bulk actions, where having one big execution plan would not be effective, or in case all the data are not available by the time of original action planning. DESC require_relative 'example_helper' require_relative 'orchestrate_evented' COUNT = (ARGV[0] || 25).to_i class SubPlansExample < Dynflow::Action include Dynflow::Action::WithSubPlans include Dynflow::Action::WithBulkSubPlans def create_sub_plans current_batch.map { |i| trigger(OrchestrateEvented::CreateMachine, "host-#{i}", 'web_server') } end def batch_size 5 end def batch(from, size) COUNT.times.drop(from).take(size) end def total_count COUNT end end class PollingSubPlansExample < SubPlansExample include Dynflow::Action::WithPollingSubPlans end if $0 == __FILE__ ExampleHelper.world.action_logger.level = Logger::INFO ExampleHelper.world t1 = ExampleHelper.world.trigger(SubPlansExample) t2 = ExampleHelper.world.trigger(PollingSubPlansExample) puts example_description puts <<-MSG.gsub(/^.*\|/, '') | Execution plans #{t1.id} and #{t2.id} with sub plans triggered | You can see the details at | #{ExampleHelper::DYNFLOW_URL}/#{t2.id} | #{ExampleHelper::DYNFLOW_URL}/#{t1.id} MSG ExampleHelper.run_web_console end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
dynflow-1.9.0 | examples/sub_plans.rb |
dynflow-1.8.3 | examples/sub_plans.rb |