package execution
- Alphabetic
- Public
- All
Type Members
- class AkkaExecActor extends AkkaExecutorActor
- class AkkaExecutor extends ProcessExecutor[UUID] with AkkaPiObservable[UUID]
- trait AkkaExecutorActor extends Actor with AkkaPiStream[UUID]
-
class
CASExecutor extends ProcessExecutor[UUID] with SimplePiObservable[UUID]
A multi-state Compare-And-Swap ProcessExecutor.
A multi-state Compare-And-Swap ProcessExecutor.
Uses a ConcurrentHashMap to store states in a thread-safe way.
Updates states using compare-and-swap for a finite number of attempts. This is to avoid the situation of multiple asynchronous atomic processes posting their results on the same state at the same time.
-
class
MutexExecutor extends ProcessExecutor[Int] with SimplePiObservable[Int]
A multi-state mutex-based ProcessExecutor.
A multi-state mutex-based ProcessExecutor.
Uses
this.synchronized
to create mutexes for safe access when adding/removing/updating states. -
trait
ProcessExecutor[KeyT] extends AnyRef
Trait representing the ability to execute any PiProcess
-
case class
SingleBlockingExecutor()(implicit context: ExecutionContext) extends Product with Serializable
SingleBlockingExecutor fully executes one PiProcess from a map of given PiProcesses.
SingleBlockingExecutor fully executes one PiProcess from a map of given PiProcesses. It blocks waiting for every atomic call to finish, so has no concurrency.
-
class
SingleStateExecutor extends ProcessExecutor[Int] with SimplePiObservable[Int]
Executes any PiProcess asynchronously.
Executes any PiProcess asynchronously. Only holds a single state, so can only execute one workflow at a time.
Running a second workflow after one has finished executing can be risky because promises/futures from the first workflow can trigger changes on the state!
-
case class
AtomicProcessExecutor(process: AtomicProcess) extends Product with Serializable
Executes an atomic process - blocking
Executes an atomic process - blocking
Built before the normal executors and kept around for testing.
- Deprecated
Value Members
- object AkkaExecutor
- object CASExecutor
- object ProcessExecutor