Build a single task that is a combination of node computations (node tasks) executed in the topological order defined by the DAG.
Build a single task that is a combination of node computations (node tasks) executed in the topological order defined by the DAG.
Monix tasks is a library for lazy cancelable futures
A instance of DAGEventListener to be notified about progress of DAG execution
A function that computes the result (DAGResult) for the current node, given the result of its predecessors given.
The Scheduler to use for Tasks.
This method does not trigger any execution but builds a complex collection of tasks and synchronization boundaries that specify a correct order of execution as defined by the DAG. The computation only runs when the returning task is scheduled for execution.
https://medium.com/@sderosiaux/are-scala-futures-the-past-69bd62b9c001
End points for DAG execution.
Get the nodes of this DAG Note: we must filter nodes which are not of the preliminary node type of this DAG, e.g.
Get the nodes of this DAG Note: we must filter nodes which are not of the preliminary node type of this DAG, e.g. InitDAGNode
list of nodes of the preliminary node type of this DAG
Create a task that fetches a specific DAGResult produced by the node with id nodeId
.
Create a task that fetches a specific DAGResult produced by the node with id nodeId
.
The result type - supertype DAGResult ensures it has a resultId defined.
A map of tasks that compute (future) results indexed by node.
The id of the producing node.
The id of the result to search among all nodes results.
The task that computes the result specified by nodeId
and resultId
.
A lookup table for incoming edges indexed by node id.
All nodes of the DAG sorted in topological order.
Starting points for DAG execution.
Create text representation of the graph by using an ASCII graph layout library
Create text representation of the graph by using an ASCII graph layout library
Convert a Try of a Result-List to a List of Result-Try's
A generic directed acyclic graph (DAG) consisting of DAGNodes interconnected with directed DAGEdges.
This DAG can have multiple start nodes and multiple end nodes as well as disconnected parts.