Wait for Callback¶
Internal implementation module: async_durable_execution._operation.wait_for_callback.
Use wait_for_callback() to create a callback, run a submitter step, and wait
for an external result as one reusable operation.
wait_for_callback extension built from callback, step, and child context.
Classes¶
WaitForCallbackContext
dataclass
¶
WaitForCallbackContext(
execution_state: ExecutionState,
operation_identifier: OperationIdentifier,
callback_id: str = "",
)
Bases: OperationContext
Context available during wait_for_callback submitter execution.
Functions:¶
wait_for_callback
¶
wait_for_callback(
submitter: Callable[[], Awaitable[Any]],
*,
name: str | None = None,
timeout: Duration | None = None,
heartbeat_timeout: Duration | None = None,
serdes: SerDes | None = None,
retry_strategy: Callable[
[Exception, int], Duration | None
]
| None = None,
) -> Task[Any]
Create a callback, run a submitter, then suspend until the callback resolves.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
submitter
|
Callable[[], Awaitable[Any]]
|
Async callable. Use get_wait_for_callback_context().callback_id inside the submitter to access the callback id. |
required |
name
|
str | None
|
Optional durable operation name. |
None
|
timeout
|
Duration | None
|
Optional maximum time to wait for callback completion. |
None
|
heartbeat_timeout
|
Duration | None
|
Optional maximum time to wait between callback heartbeats. |
None
|
serdes
|
SerDes | None
|
Optional serializer for callback results and submitter results. |
None
|
retry_strategy
|
Callable[[Exception, int], Duration | None] | None
|
Optional strategy that returns a retry delay or None to stop. |
None
|
get_wait_for_callback_context
¶
get_wait_for_callback_context() -> WaitForCallbackContext
Return the active WaitForCallbackContext.