RetryAbleTask Class
A Task representing with_retry scenarios.
It inherits from WhenAllTask because retryable scenarios are Tasks with equivalent to WhenAll Tasks with dynamically increasing lists of children. At every failure, we add a Timer child and a Task child to the list of pending tasks.
Constructor
RetryAbleTask(child: TaskBase, retry_options: RetryOptions, context)
Parameters
| Name | Description |
|---|---|
|
child
Required
|
|
|
retry_options
Required
|
|
|
context
Required
|
|
Methods
| change_state |
Transition a running Task to a terminal state: success or failure. |
| handle_completion |
Manage sub-task completion events. |
| propagate |
Notify parent Task of this Task's state change. |
| set_is_played |
Set the is_played flag for the Task. Needed for updating the orchestrator's is_replaying flag. |
| set_value |
Set the value of this Task: either an exception of a result. |
| try_set_value |
Transition a Retryable Task to a terminal state and set its value. |
change_state
handle_completion
propagate
Notify parent Task of this Task's state change.
propagate()
set_is_played
Set the is_played flag for the Task.
Needed for updating the orchestrator's is_replaying flag.
set_is_played(is_played: bool)
Parameters
| Name | Description |
|---|---|
|
is_played
Required
|
Whether the latest event for this Task has been played before. |
set_value
Set the value of this Task: either an exception of a result.
set_value(is_error: bool, value: Any)
Parameters
| Name | Description |
|---|---|
|
is_error
Required
|
Whether the value represents an exception of a result. |
|
value
Required
|
The value of this Task |
Exceptions
| Type | Description |
|---|---|
|
When the Task failed but its value was not an Exception |
try_set_value
Transition a Retryable Task to a terminal state and set its value.
try_set_value(child: TaskBase)
Parameters
| Name | Description |
|---|---|
|
child
Required
|
A sub-task that just completed |
Attributes
id_
Obtain the task's ID.
Since this is an internal-only abstraction, the task ID is represented by the ID of its inner/wrapped task plus a suffix: "_retryable_proxy"
Returns
| Type | Description |
|---|---|
|
[type]
|
[description] |
is_completed
Get indicator of whether the task completed.
Note that completion is not equivalent to success.