Class/Object

com.coxautodata.waimak.dataflow

SequentialDataFlowExecutor

Related Docs: object SequentialDataFlowExecutor | package dataflow

Permalink

class SequentialDataFlowExecutor extends DataFlowExecutor with Logging

Created by Alexei Perelighin 2017/12/27

Executes one action at a time wihtout trying to parallelize them.

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. SequentialDataFlowExecutor
  2. DataFlowExecutor
  3. Logging
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new SequentialDataFlowExecutor(flowReporter: FlowReporter, priorityStrategy: (Seq[DataFlowAction]) ⇒ Seq[DataFlowAction])

    Permalink

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  7. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  8. def execute[A <: DataFlow[A]](dataFlow: A, errorOnUnexecutedActions: Boolean = true): (Seq[DataFlowAction], A)

    Permalink

    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.

    dataFlow

    initial state with actions to execute and set inputs from previous actions

    errorOnUnexecutedActions

    whether to throw an exception if some actions on the flow did not execute. Default is true

    returns

    (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

    Definition Classes
    DataFlowExecutor
  9. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  10. val flowReporter: FlowReporter

    Permalink

    Used to report events on the flow.

    Used to report events on the flow.

    Definition Classes
    SequentialDataFlowExecutorDataFlowExecutor
  11. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  12. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  13. def initActionScheduler(): ActionScheduler

    Permalink

    Action scheduler used to run actions

    Action scheduler used to run actions

    Definition Classes
    SequentialDataFlowExecutorDataFlowExecutor
  14. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  15. def isTraceEnabled(): Boolean

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  16. def logAndReturn[A](a: A, msg: String, level: Level): A

    Permalink

    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

    returns

    a

    Definition Classes
    Logging
  17. def logAndReturn[A](a: A, message: (A) ⇒ String, level: Level): A

    Permalink

    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

    returns

    a

    Definition Classes
    Logging
    Example:
    1. logAndReturn(1, (num: Int) => s"number: $num", Info)
      // In the log we would see a log corresponding to "number 1"
  18. def logDebug(msg: ⇒ String, throwable: Throwable): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  19. def logDebug(msg: ⇒ String): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  20. def logError(msg: ⇒ String, throwable: Throwable): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  21. def logError(msg: ⇒ String): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  22. def logInfo(msg: ⇒ String, throwable: Throwable): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  23. def logInfo(msg: ⇒ String): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  24. def logName: String

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  25. def logTrace(msg: ⇒ String, throwable: Throwable): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  26. def logTrace(msg: ⇒ String): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  27. def logWarning(msg: ⇒ String, throwable: Throwable): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  28. def logWarning(msg: ⇒ String): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  29. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  30. def nextActionToSchedule[A <: DataFlow[A]](currentFlow: A, actionScheduler: ActionScheduler): Option[(String, DataFlowAction)]

    Permalink

    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

    returns

    (Pool into which to schedule, Action to schedule)

    Attributes
    protected[com.coxautodata.waimak.dataflow]
    Definition Classes
    DataFlowExecutor
  31. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  32. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  33. val priorityStrategy: (Seq[DataFlowAction]) ⇒ Seq[DataFlowAction]

    Permalink

    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.

    Definition Classes
    SequentialDataFlowExecutorDataFlowExecutor
  34. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  35. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  36. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  37. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  38. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  39. def waitForAnActionToFinish[A <: DataFlow[A]](currentFlow: A, actionScheduler: ActionScheduler, successfulActions: Seq[DataFlowAction]): Try[(A, ActionScheduler, Seq[DataFlowAction])]

    Permalink
    Definition Classes
    DataFlowExecutor

Inherited from DataFlowExecutor

Inherited from Logging

Inherited from AnyRef

Inherited from Any

Ungrouped