Module: AWS::Flow

Defined in:
lib/aws/decider/worker.rb,
lib/aws/decider/decider.rb,
lib/aws/decider/options.rb,
lib/aws/decider/activity.rb,
lib/aws/decider/executor.rb,
lib/aws/decider/utilities.rb,
lib/aws/decider/exceptions.rb,
lib/aws/decider/task_poller.rb,
lib/aws/decider/task_handler.rb,
lib/aws/decider/async_decider.rb,
lib/aws/decider/flow_defaults.rb,
lib/aws/decider/data_converter.rb,
lib/aws/decider/generic_client.rb,
lib/aws/decider/history_helper.rb,
lib/aws/decider/implementation.rb,
lib/aws/decider/state_machines.rb,
lib/aws/decider/workflow_clock.rb,
lib/aws/decider/workflow_client.rb,
lib/aws/decider/decision_context.rb,
lib/aws/decider/workflow_enabled.rb,
lib/aws/decider/activity_definition.rb,
lib/aws/decider/workflow_definition.rb,
lib/aws/decider/async_retrying_executor.rb,
lib/aws/decider/workflow_definition_factory.rb

Defined Under Namespace

Modules: Activities, GenericTypeModule, Utilities, Workflows Classes: ActivityClient, ActivityDefaults, ActivityDefinition, ActivityExecutionContext, ActivityFailureException, ActivityMetadata, ActivityOptions, ActivityRuntimeOptions, ActivityTaskFailedException, ActivityTaskPoller, ActivityTaskTimedOutException, ActivityType, ActivityWorker, AsyncDecider, AsyncRetryingExecutor, ChildWorkflowException, ChildWorkflowFailedException, ChildWorkflowTerminatedException, ChildWorkflowTimedOutException, ContinueAsNewOptions, DecisionContext, DecisionException, DecisionID, DecisionTaskHandler, Defaults, EventsIterator, ExponentialRetryOptions, FailWorkflowExecutionException, FlowConstants, FlowException, ForkingExecutor, GenericActivityClient, GenericClient, GenericType, GenericWorker, GenericWorkflowClient, HistoryHelper, LogMock, MethodPair, Options, RejectedExecutionException, RetryDefaults, RetryOptions, RetryPolicy, ScheduleActivityTaskFailedException, SignalExternalWorkflowException, SignalWorkflowOptions, SingleDecisionData, SingleDecisionIterator, StartChildWorkflowFailedException, StartTimerFailedException, StartWorkflowOptions, SuspendableSemaphore, WorkerDefaults, WorkerOptions, WorkflowClient, WorkflowClock, WorkflowContext, WorkflowDefaults, WorkflowDefinition, WorkflowDefinitionFactory, WorkflowException, WorkflowFuture, WorkflowOptions, WorkflowOptionsWithDefaults, WorkflowTaskPoller, WorkflowType, WorkflowWorker, YAMLDataConverter

Instance Method Summary collapse

Instance Method Details

#with_retry(options = {}, &block) ⇒ Object

Execute a block with retries within a workflow context.

Parameters:

  • options (defaults to: {})

    The RetryOptions to use.

  • block

    The block to execute.



52
53
54
55
56
57
58
59
# File 'lib/aws/decider/implementation.rb', line 52

def with_retry(options = {}, &block)
  raise "with_retry can only be used inside a workflow context!" if Utilities::is_external
  retry_options = RetryOptions.new(options)
  retry_policy = RetryPolicy.new(retry_options.retry_function, retry_options)
  async_retrying_executor = AsyncRetryingExecutor.new(retry_policy, self.decision_context.workflow_clock, retry_options.return_on_start)
  future = async_retrying_executor.execute(lambda { block.call })
  Utilities::drill_on_future(future) unless retry_options.return_on_start
end

#workflow_client(service = nil, domain = nil, &block) ⇒ Object

Creates a new WorkflowClient instance

Parameters:

  • service (defaults to: nil)

    A SWF service reference. This is usually created with:

    swf = AWS::SimpleWorkflow.new
    
  • domain (defaults to: nil)

    The SWF Domain to use for this workflow client. This is usually created on the service object, such as:

    domain = swf.domains.create('my-domain', 10)
    

    or retrieved from it (for existing domains):

    domain = swf.domains['my-domain']
    
  • block (Hash, StartWorkflowOptions)

    A hash of options to start the workflow.



40
41
42
# File 'lib/aws/decider/implementation.rb', line 40

def workflow_client(service = nil, domain = nil, &block)
  AWS::Flow.send(:workflow_client, service, domain, &block)
end