Used to report events on the flow.
Action scheduler used to run actions
A complex data flow has lots of parallel, diverging and converging actions, lots of the actions could be started in parallel, but certain actions if started earlier could lead to quicker end to end execution of all of the flows and various strategies could lead to it.
A complex data flow has lots of parallel, diverging and converging actions, lots of the actions could be started in parallel, but certain actions if started earlier could lead to quicker end to end execution of all of the flows and various strategies could lead to it. This strategy will always be applied to a set of actions to schedule regardless of the scheduler implementation.
Executes as many actions as possible with the given DAG, stops when no more actions can be executed.
Executes as many actions as possible with the given DAG, stops when no more actions can be executed.
initial state with actions to execute and set inputs from previous actions
whether to throw an exception if some actions on the flow did not execute. Default is true
(Seq[EXECUTED ACTIONS], FINAL STATE). Final state does not contain the executed actions and the outputs of the executed actions are now in the inputs
Takes a value of type A and a msg to log, returning a and logging the message at the desired level
Takes a value of type A and a msg to log, returning a and logging the message at the desired level
a
Takes a value of type A and a function message from A to String, logs the value of invoking message(a) at the level described by the level parameter
Takes a value of type A and a function message from A to String, logs the value of invoking message(a) at the level described by the level parameter
a
logAndReturn(1, (num: Int) => s"number: $num", Info) // In the log we would see a log corresponding to "number 1"
Determines which execution pool to schedule in and an action to schedule into it.
Determines which execution pool to schedule in and an action to schedule into it. Decision depends on: 1) slots available in the pools 2) actions available for the pools with slots 3) priority strategy that will select and change the order of the available actions
(Pool into which to schedule, Action to schedule)
Created by Alexei Perelighin on 11/01/18.