Graph of actors¶
An Ewoks task graph is converted to a graph of actors before execution.
A task is wrapped by an EwoksPythonActor followed by some binder actors, depending on the type of link between source and target. For each link in the task graph, the final actor of the source is a NameMapperActor which is connected to the target.
Conditional link with one condition
On-Error conditional link
The NameMapperActor of a source for a specific target is connected to the InputMergeActor before that target.
The StartActor is connected to all tasks that are the start of a task scheduling thread.
Tasks without successors are connected to the StopActor. This actor manages a dictionary of outputs which is considered to be the “output of the graph”.
All actors that do not have an _on_error_ conditional link are connected to the ErrorHandler which directly connected to the StopActor.
These actors are not provided by pypushflow
EwoksythonActor: like PythonActor but it passes node name and attributes to the next actor.
InputMergeActor: like Joinactor (merges the input data dictionaries) triggers the downstream actors when all required input has been provided at least once. Only one non-required input passed.
ConditionalActor: triggers downstream actors when all conditions are fulfilled.
NameMapperActor: before triggering the next task it applies filtering and name mapping to the input data.