Before going onto the details, let’s take a quick look at the Garcon’s implementation of Serial Activity Execution:
from garcon import activity from garcon import runners domain = 'dev' name = 'boto_tutorial' create = activity.create(domain, name) a_tasks = create( name='a_tasks', run=runner.Sync( lambda context, activity: dict(result='Now don’t be givin him sambuca!')) b_tasks = create( name='b_tasks', requires=[a_tasks], run=runner.Sync( lambda context, activity: print(context))) c_tasks = create( name='c_tasks', requires=[b_tasks], run=runner.Sync( lambda context, activity: print(context)))
By way of comparison, check out the implementation using directly boto.
- Notes: Executing this code shows that the activity “a_tasks” returns a dictionary which hydrates the execution context. When the activity “b_tasks” is executed, the context passed for its execution contains the key/value previously passed as an output. Same observation can be done in “c_tasks”.
All activities are running in series. More examples (including runners) are available online.