def test_01(): domain = 'floto_test' rs = floto.specs.retry_strategy.InstantRetry(retries=2) activity_task_1 = ActivityTask(domain=domain, name='activity1', version='v5', retry_strategy=rs) decider_spec = DeciderSpec(domain=domain, task_list=str(uuid.uuid4()), activity_tasks=[activity_task_1], default_activity_task_list='floto_activities', terminate_decider_after_completion=True) decider = floto.decider.Decider(decider_spec=decider_spec) response = floto.api.Swf().start_workflow_execution( domain='floto_test', workflow_type_name='my_workflow_type', workflow_type_version='v1', task_list=decider_spec.task_list, input={'foo': 'bar'}) run_id = response['runId'] workflow_id = 'my_workflow_type_v1' print(30 * '-' + ' Running Test 01 ' + 30 * '-') decider.run() print(30 * '-' + ' Done Test 01 ' + 30 * '-') return get_result('floto_test', run_id, workflow_id)
def test_03(): domain = 'floto_test' rs = floto.specs.retry_strategy.InstantRetry(retries=2) a1 = ActivityTask(domain=domain, name='activity1', version='v5', retry_strategy=rs) a2 = ActivityTask(domain=domain, name='activity2', version='v4', retry_strategy=rs) decider_spec = DeciderSpec(domain=domain, task_list=str(uuid.uuid4()), activity_tasks=[a1, a2], default_activity_task_list='floto_activities', terminate_decider_after_completion=True) decider = floto.decider.Decider(decider_spec=decider_spec.to_json()) workflow_args = {'domain':decider_spec.domain, 'workflow_type_name':'my_workflow_type', 'workflow_type_version':'v1', 'task_list':decider_spec.task_list, 'input':{'foo':'bar'}} response = floto.api.Swf().start_workflow_execution(**workflow_args) print(30*'-'+' Running Test 03 '+30*'-') decider.run() print(30*'-'+' Done Test 03 '+30*'-') return get_result(decider.domain, response['runId'], 'my_workflow_type_v1')
def test_07(): domain = 'floto_test' rs = floto.specs.retry_strategy.InstantRetry(retries=2) timer_a = floto.specs.task.Timer(id_='TimerA', delay_in_seconds=15) task_1 = floto.specs.task.ActivityTask(domain=domain, name='activity1', version='v5', retry_strategy=rs) timer_b = floto.specs.task.Timer(id_='TimerB', delay_in_seconds=5, requires=[task_1.id_]) task_2 = floto.specs.task.ActivityTask(domain=domain, name='activity2', version='v4', requires=[timer_b.id_], retry_strategy=rs) decider_spec = floto.specs.DeciderSpec(domain=domain, task_list=str(uuid.uuid4()), activity_tasks=[timer_a, timer_b, task_1, task_2], default_activity_task_list='floto_activities', terminate_decider_after_completion=True) decider = floto.decider.Decider(decider_spec=decider_spec) workflow_args = {'domain': decider_spec.domain, 'workflow_type_name': 'my_workflow_type', 'workflow_type_version': 'v1', 'task_list': decider_spec.task_list, 'input': {'foo': 'bar'}} response = floto.api.Swf().start_workflow_execution(**workflow_args) print(30 * '-' + ' Running Test 07 ' + 30 * '-') decider.run() print(30 * '-' + ' Done Test 07 ' + 30 * '-') return get_result(decider.domain, response['runId'], 'my_workflow_type_v1')
def test_06(): domain = 'floto_test' rs = floto.specs.retry_strategy.InstantRetry(retries=2) activity_task = ActivityTask(domain=domain, name='activity_fails_2', version='v2', retry_strategy=rs) decider_spec = DeciderSpec(domain=domain, task_list=str(uuid.uuid4()), activity_tasks=[activity_task], default_activity_task_list='floto_activities', terminate_decider_after_completion=True) decider = floto.decider.Decider(decider_spec=decider_spec) workflow_args = { 'domain': decider_spec.domain, 'workflow_type_name': 'my_workflow_type', 'workflow_type_version': 'v1', 'task_list': decider_spec.task_list, 'input': { 'foo': 'bar' } } response = floto.api.Swf().start_workflow_execution(**workflow_args) print(30 * '-' + ' Running Test 06 ' + 30 * '-') decider.run() print(30 * '-' + ' Done Test 06 ' + 30 * '-') return get_fail_workflow_execution(decider.domain, response['runId'], 'my_workflow_type_v1')
def test_02(): rs = floto.specs.retry_strategy.InstantRetry(retries=2) activity_task = ActivityTask(name='activity2', version='v4', retry_strategy=rs) decider_spec = DeciderSpec(domain='floto_test', task_list=str(uuid.uuid4()), activity_tasks=[activity_task], activity_task_list='floto_activities') decider = floto.decider.Decider(decider_spec=decider_spec) workflow_args = {'domain':decider_spec.domain, 'workflow_type_name':'my_workflow_type', 'workflow_type_version':'v1', 'task_list':decider_spec.task_list} response = floto.api.Swf().start_workflow_execution(**workflow_args) print(30*'-'+' Running Test 02 '+30*'-') decider.run() print(30*'-'+' Done Test 02 '+30*'-') return get_result(decider.domain, response['runId'], 'my_workflow_type_v1')
def test_01(): rs = floto.specs.retry_strategy.InstantRetry(retries=2) activity_task_1 = ActivityTask(name='activity1', version='v5', retry_strategy=rs) decider_spec = DeciderSpec(domain='floto_test', task_list=str(uuid.uuid4()), activity_tasks=[activity_task_1], activity_task_list='floto_activities') decider = floto.decider.Decider(decider_spec=decider_spec) response = floto.api.Swf().start_workflow_execution(domain='floto_test', workflow_type_name='my_workflow_type', workflow_type_version='v1', task_list=decider_spec.task_list, input={'foo':'bar'}) run_id = response['runId'] workflow_id = 'my_workflow_type_v1' print(30*'-'+' Running Test 01 '+30*'-') decider.run() print(30*'-'+' Done Test 01 '+30*'-') return get_result('floto_test', run_id, workflow_id)
a3c = ActivityTask( domain=domain, name="demo_step3", version="v4", requires=[a1.id_], retry_strategy=rs, input={"start_val": 3} ) a3d = ActivityTask( domain=domain, name="demo_step3", version="v4", requires=[a1.id_], retry_strategy=rs, input={"start_val": 2} ) a3e = ActivityTask( domain=domain, name="demo_step3", version="v4", requires=[a1.id_, a2.id_, a3a.id_, a3b.id_, a3c.id_, a3d.id_], retry_strategy=rs, input={"start_val": 1}, ) decider_spec = DeciderSpec( domain="floto_test", task_list="demo_step_decisions", activity_tasks=[a1, a2, a3a, a3b, a3c, a3d, a3e], default_activity_task_list="demo_step_activities", terminate_decider_after_completion=True, ) decider = floto.decider.Decider(decider_spec=decider_spec) # ---------------------------------- # # Start the decider # ---------------------------------- # decider.run()
################################################ ### Create a task and the decider and run it ### ################################################ simple_task = floto.specs.task.ActivityTask(domain=domain, name='simple_activity', version='v1') decider_spec = floto.specs.DeciderSpec( domain=domain, task_list='simple_decider', default_activity_task_list='hello_world_atl', terminate_decider_after_completion=True, activity_tasks=[simple_task]) decider = floto.decider.Decider(decider_spec=decider_spec) decider.run(separate_process=True) ############################################# ### Create an activity and start a worker ### ############################################# @floto.activity(domain=domain, name='simple_activity', version='v1') def simple_activity(): print('\nSimpleWorker: I\'m working!') for i in range(3): print('.') time.sleep(0.8) # Terminate the worker after first execution: print('I\'m done.')
def run(self): decider = self.get_decider_from_spec_file(self.args.decider_spec) decider.run()
import floto import logging from floto.specs.task import ActivityTask, ChildWorkflow from floto.specs import DeciderSpec import floto.decider logger = logging.getLogger(__name__) decider_spec = DeciderSpec(domain='floto_test', task_list='s3_files', default_activity_task_list='s3_files_worker', terminate_decider_after_completion=False) decider = floto.decider.DynamicDecider(decider_spec=decider_spec) decider.run(separate_process=True) decider2 = floto.decider.DynamicDecider(decider_spec=decider_spec) decider2.run(separate_process=True)
def start_child_decider(self, decider_spec): decider = floto.decider.Decider(decider_spec=decider_spec) decider.run(separate_process=True)