class documentation
class WorkflowRunOperationContext(StartOperationContext): (source)
Constructors: WorkflowRunOperationContext(*args, **kwargs)
, WorkflowRunOperationContext._from_start_operation_context(ctx)
Context received by a workflow run operation.
Warning
This API is experimental and unstable.
Method | __init__ |
Initialize the workflow run operation context. |
Async Method | start |
Start a workflow that will deliver the result of the Nexus operation. |
Class Method | _from |
Undocumented |
Instance Variable | _temporal |
Undocumented |
@overload
async def start_workflow(self, workflow:
@overloadMethodAsyncNoParam[ SelfType, ReturnType]
, *, id: str
, task_queue: str | None
= None, execution_timeout: timedelta | None
= None, run_timeout: timedelta | None
= None, task_timeout: timedelta | None
= None, id_reuse_policy: temporalio.common.WorkflowIDReusePolicy
= temporalio.common.WorkflowIDReusePolicy.ALLOW_DUPLICATE, id_conflict_policy: temporalio.common.WorkflowIDConflictPolicy
= temporalio.common.WorkflowIDConflictPolicy.UNSPECIFIED, retry_policy: temporalio.common.RetryPolicy | None
= None, cron_schedule: str
= '', memo: Mapping[ str, Any] | None
= None, search_attributes: temporalio.common.TypedSearchAttributes | temporalio.common.SearchAttributes | None
= None, static_summary: str | None
= None, static_details: str | None
= None, start_delay: timedelta | None
= None, start_signal: str | None
= None, start_signal_args: Sequence[ Any]
= [], rpc_metadata: Mapping[ str, str]
= {}, rpc_timeout: timedelta | None
= None, request_eager_start: bool
= False, priority: temporalio.common.Priority
= temporalio.common.Priority.default, versioning_override: temporalio.common.VersioningOverride | None
= None) -> WorkflowHandle[ ReturnType]
:async def start_workflow(self, workflow:
@overloadMethodAsyncSingleParam[ SelfType, ParamType, ReturnType]
, arg: ParamType
, *, id: str
, task_queue: str | None
= None, execution_timeout: timedelta | None
= None, run_timeout: timedelta | None
= None, task_timeout: timedelta | None
= None, id_reuse_policy: temporalio.common.WorkflowIDReusePolicy
= temporalio.common.WorkflowIDReusePolicy.ALLOW_DUPLICATE, id_conflict_policy: temporalio.common.WorkflowIDConflictPolicy
= temporalio.common.WorkflowIDConflictPolicy.UNSPECIFIED, retry_policy: temporalio.common.RetryPolicy | None
= None, cron_schedule: str
= '', memo: Mapping[ str, Any] | None
= None, search_attributes: temporalio.common.TypedSearchAttributes | temporalio.common.SearchAttributes | None
= None, static_summary: str | None
= None, static_details: str | None
= None, start_delay: timedelta | None
= None, start_signal: str | None
= None, start_signal_args: Sequence[ Any]
= [], rpc_metadata: Mapping[ str, str]
= {}, rpc_timeout: timedelta | None
= None, request_eager_start: bool
= False, priority: temporalio.common.Priority
= temporalio.common.Priority.default, versioning_override: temporalio.common.VersioningOverride | None
= None) -> WorkflowHandle[ ReturnType]
:async def start_workflow(self, workflow:
@overloadCallable[ Concatenate[ SelfType, MultiParamSpec], Awaitable[ ReturnType]]
, *, args: Sequence[ Any]
, id: str
, task_queue: str | None
= None, execution_timeout: timedelta | None
= None, run_timeout: timedelta | None
= None, task_timeout: timedelta | None
= None, id_reuse_policy: temporalio.common.WorkflowIDReusePolicy
= temporalio.common.WorkflowIDReusePolicy.ALLOW_DUPLICATE, id_conflict_policy: temporalio.common.WorkflowIDConflictPolicy
= temporalio.common.WorkflowIDConflictPolicy.UNSPECIFIED, retry_policy: temporalio.common.RetryPolicy | None
= None, cron_schedule: str
= '', memo: Mapping[ str, Any] | None
= None, search_attributes: temporalio.common.TypedSearchAttributes | temporalio.common.SearchAttributes | None
= None, static_summary: str | None
= None, static_details: str | None
= None, start_delay: timedelta | None
= None, start_signal: str | None
= None, start_signal_args: Sequence[ Any]
= [], rpc_metadata: Mapping[ str, str]
= {}, rpc_timeout: timedelta | None
= None, request_eager_start: bool
= False, priority: temporalio.common.Priority
= temporalio.common.Priority.default, versioning_override: temporalio.common.VersioningOverride | None
= None) -> WorkflowHandle[ ReturnType]
:async def start_workflow(self, workflow:
(source)
¶
str
, arg: Any
= temporalio.common._arg_unset, *, args: Sequence[ Any]
= [], id: str
, task_queue: str | None
= None, result_type: type[ ReturnType] | None
= None, execution_timeout: timedelta | None
= None, run_timeout: timedelta | None
= None, task_timeout: timedelta | None
= None, id_reuse_policy: temporalio.common.WorkflowIDReusePolicy
= temporalio.common.WorkflowIDReusePolicy.ALLOW_DUPLICATE, id_conflict_policy: temporalio.common.WorkflowIDConflictPolicy
= temporalio.common.WorkflowIDConflictPolicy.UNSPECIFIED, retry_policy: temporalio.common.RetryPolicy | None
= None, cron_schedule: str
= '', memo: Mapping[ str, Any] | None
= None, search_attributes: temporalio.common.TypedSearchAttributes | temporalio.common.SearchAttributes | None
= None, static_summary: str | None
= None, static_details: str | None
= None, start_delay: timedelta | None
= None, start_signal: str | None
= None, start_signal_args: Sequence[ Any]
= [], rpc_metadata: Mapping[ str, str]
= {}, rpc_timeout: timedelta | None
= None, request_eager_start: bool
= False, priority: temporalio.common.Priority
= temporalio.common.Priority.default, versioning_override: temporalio.common.VersioningOverride | None
= None) -> WorkflowHandle[ ReturnType]
:Start a workflow that will deliver the result of the Nexus operation.
The workflow will be started in the same namespace as the Nexus worker, using the same client as the worker. If task queue is not specified, the worker's task queue will be used.
See temporalio.client.Client.start_workflow
for all arguments.
The return value is temporalio.nexus.WorkflowHandle
.
The workflow will be started as usual, with the following modifications:
- On workflow completion, Temporal server will deliver the workflow result to
- the Nexus operation caller, using the callback from the Nexus operation start request.
- The request ID from the Nexus operation start request will be used as the
- request ID for the start workflow request.
- Inbound links to the caller that were submitted in the Nexus start operation
- request will be attached to the started workflow and, outbound links to the started workflow will be added to the Nexus start operation response. If the Nexus caller is itself a workflow, this means that the workflow in the caller namespace web UI will contain links to the started workflow, and vice versa.
@classmethod
def _from_start_operation_context(cls, ctx:
def _from_start_operation_context(cls, ctx:
StartOperationContext
) -> WorkflowRunOperationContext
:
(source)
¶
Undocumented