class AWS::Flow::FlowConstants

Constants used by the AWS Flow Framework for Ruby.

@!attribute [r] default_data_converter

The DataConverter used to interpret results from Amazon SWF.

@return [Object] {YAMLDataConverter}

@!attribute [r] exponential_retry_backoff_coefficient

The coefficient used to determine how much to back off the interval
  timing for an exponential retry scenario.

@return [Float] `2.0` (each retry takes twice as long as the previous
  attempt)

@!attribute [r] exponential_retry_exceptions_to_exclude

A list of the exception types to exclude from initiating retry attempts.

@return [Array<Object>] an empty list. No exceptions are excluded.

@!attribute [r] exponential_retry_exceptions_to_include

A list of the exception types to include for initiating retry attempts.

@return [Array<Class>] `Exception` (all exceptions are included)

@!attribute [r] exponential_retry_function

The default exponential retry function.

@return A *lambda* that takes four parameters: an initial time, a time
  of failure, a number of attempts, and a set of
  {ExponentialRetryOptions}.

@!attribute [r] exponential_retry_initial_retry_interval

The initial retry interval.

@return [Fixnum] `2`

@!attribute [r] exponential_retry_maximum_attempts

The maximum number of attempts to make for an exponential retry of a
  failed task.

@return [Float] `Float::INFINITY` (there is no limit to the number of
  retry attempts)

@!attribute [r] exponential_retry_maximum_retry_interval_seconds

The maximum interval that can pass, in seconds, before a retry occurs.

@return [Fixnum] `-1` (no maximum)

@!attribute [r] exponential_retry_retry_expiration_seconds

The maximum time that can pass, in seconds, before an exponential retry
  attempt is considered to be a failure.

@return [Fixnum] `-1` (no expiration for a retry attempt)

@!attribute [r] jitter_function

The function that is used to determine how long to wait for the next
  retry attempt when *should_jitter* is set to `true`.

@return a *lambda* that takes a random number seed and a maximum value
  (must be > 0).

@!attribute [r] should_jitter

Indicates whether there should be any randomness built in to the timing
  of the retry attempt.

@return [Boolean] `true`

@!attribute [r] use_worker_task_list

Used with activity and workflow options. Indicates that the activity
  and/or workflow should use the same task list that the associated
  worker is polling on.

@return [String] "USE_WORKER_TASK_LIST"

Constants

DATA_LIMIT

Sizes taken from docs.aws.amazon.com/amazonswf/latest/apireference/API_FailWorkflowExecutionDecisionAttributes.html

DETAILS_LIMIT

Number of chars that can fit in FlowException’s details. Same as DATA_LIMIT

INFINITY
NUM_OF_WORKERS_DEFAULT
REASON_LIMIT

Number of chars that can fit in FlowException’s reason

RETENTION_DEFAULT
TRUNCATED

Truncation string added to the end of a trucated string“

TRUNCATION_OVERHEAD

This is the truncation overhead for serialization.

Attributes

default_data_converter[R]
exponential_retry_backoff_coefficient[R]
exponential_retry_exceptions_to_exclude[R]
exponential_retry_exceptions_to_include[R]
exponential_retry_function[R]
exponential_retry_initial_retry_interval[R]
exponential_retry_maximum_attempts[R]
exponential_retry_maximum_retry_interval_seconds[R]
exponential_retry_retry_expiration_seconds[R]
jitter_function[R]
should_jitter[R]
use_worker_task_list[R]

Public Class Methods

data_converter() click to toggle source

Selects the data converter to use. By default, YAMLDataConverter is used. S3DataConverter is used when AWS_SWF_BUCKET_NAME environment variable is set.

# File lib/aws/decider/flow_defaults.rb, line 185
def self.data_converter
  return self.default_data_converter unless ENV['AWS_SWF_BUCKET_NAME']
  S3DataConverter.converter
end
defaults() click to toggle source
# File lib/aws/decider/flow_defaults.rb, line 117
def self.defaults
  {
    domain: "FlowDefault",
    prefix_name: "FlowDefaultWorkflowRuby",
    execution_method: "start",
    version: "1.0",
    # execution timeout (1 hour)
    execution_start_to_close_timeout: "3600",
    data_converter: self.data_converter,
    schedule_to_start_timeout: 60,
    start_to_close_timeout: 60,
    retry_policy: { maximum_attempts: 3 },
    task_list: "flow_default_ruby",
    result_activity_prefix: "FlowDefaultResultActivityRuby",
    result_activity_version: "1.0",
    result_activity_method: "run"
  }
end