Class

com.bazaarvoice.sswf.service

StepDecisionWorker

Related Doc: package service

Permalink

class StepDecisionWorker[SSWFInput, StepEnum <: Enum[StepEnum] with WorkflowStep] extends AnyRef

The worker class responsible for scheduling workflow actions. The class is built so that you can plug it in to a scheduled service of your choice. First, call pollForDecisionToMake() to determine if a decision needs to be made, and then call makeDecision() to make the decision.
You could obviously poll and work in the same thread, but remember that this worker can handle many concurrent workflows, so separating them lets you have one thread polling and then a pool of threads simultaneously working on scheduling decisions.
Example: runOne() { task := worker.pollForDecisionToMake() if (task != null) { threadPool.submit(() -> { worker.makeDecision(task) }) }

SSWFInput

The type of the parsed workflow input

StepEnum

The enum containing workflow step definitions

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. StepDecisionWorker
  2. AnyRef
  3. Any
  1. Hide All
  2. Show all
Visibility
  1. Public
  2. All

Instance Constructors

  1. new StepDecisionWorker(domain: String, taskList: String, swf: AmazonSimpleWorkflow, inputParser: InputParser[SSWFInput], workflowDefinition: WorkflowDefinition[SSWFInput, StepEnum], log: Logger)(implicit arg0: ClassTag[StepEnum])

    Permalink

    domain

    The domain of the workflow: AWS docs as well as the README

    taskList

    If you execute the same workflow in different environments, use different task lists. Think of them as independent sets of actors working on the same logical workflow, but in different contexts (like production/qa/development/your machine). AWS docs as well as the README

    swf

    The SWF service client

    inputParser

    see InputParser

    workflowDefinition

    see StepsDefinition

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 finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  9. final def getClass(): Class[_]

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

    Permalink
    Definition Classes
    AnyRef → Any
  11. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  12. def makeDecision(decisionTask: DecisionTask): RespondDecisionTaskCompletedRequest

    Permalink

    Given the context of a workflow execution, decide what needs to be done next.

    Given the context of a workflow execution, decide what needs to be done next. A variety of exceptions are possible. Make sure your worker threads can't die without replacement.

    decisionTask

    The task from SWF. Must not be null!

    returns

    The decision that we sent to SWF

  13. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  14. final def notify(): Unit

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

    Permalink
    Definition Classes
    AnyRef
  16. def pollForDecisionsToMake(): DecisionTask

    Permalink

    Find out if any workflows in our domain/taskList need decisions made.

    Find out if any workflows in our domain/taskList need decisions made. A variety of exceptions are possible. Make sure your poller threads can't die without replacement.

    returns

    The decision task, if there is one. Null otherwise.

    Annotations
    @Nullable()
  17. final def synchronized[T0](arg0: ⇒ T0): T0

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

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

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

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

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped