Add docs/intro to simple_linear example

Change-Id: I6911337bf492d5cfc7e48a006dbf076826a18a62
This commit is contained in:
Joshua Harlow
2013-10-16 16:50:57 -07:00
parent 99bfca62eb
commit ebfd9d0da9

View File

@@ -31,29 +31,37 @@ import taskflow.engines
from taskflow.patterns import linear_flow as lf
from taskflow import task
# INTRO: In this example we create two tasks, each of which ~calls~ a given
# ~phone~ number (provided as a function input) in a linear fashion (one after
# the other). For a workflow which is serial this shows a extremly simple way
# of structuring your tasks (the code that does the work) into a linear
# sequence (the flow) and then passing the work off to an engine, with some
# initial data to be ran in a reliable manner.
#
# This example shows a basic usage of the taskflow structures without involving
# the complexity of persistence. Using the structures that taskflow provides
# via tasks and flows makes it possible for you to easily at a later time
# hook in a persistence layer (and then gain the functionality that offers)
# when you decide the complexity of adding that layer in is 'worth it' for your
# applications usage pattern (which some applications may not need).
class CallJim(task.Task):
def __init__(self):
super(CallJim, self).__init__()
def execute(self, jim_number, *args, **kwargs):
print("Calling jim %s." % jim_number)
class CallJoe(task.Task):
def __init__(self):
super(CallJoe, self).__init__()
def execute(self, joe_number, *args, **kwargs):
print("Calling joe %s." % joe_number)
# Create your flow and associated tasks (the work to be done).
flow = lf.Flow('simple-linear').add(
CallJim(),
CallJoe()
)
# Now run that flow using the provided initial data (store below)
taskflow.engines.run(flow, store=dict(joe_number=444,
jim_number=555))