class documentation

class NexusClient(ABC, Generic[NexusServiceType]): (source)

Known subclasses: temporalio.client._nexus._NexusClient

View In Hierarchy

Client for starting standalone Nexus operations.

Warning

This API is experimental and unstable.

Use Client.create_nexus_client to create a client.

Async Method execute_operation Start a Nexus operation and wait for its result.
Async Method start_operation Start a Nexus operation and return a handle.
@overload
@abstractmethod
async def execute_operation(self, operation: nexusrpc.Operation[InputT, OutputT], arg: InputT, *, id: str, id_reuse_policy: temporalio.common.NexusOperationIDReusePolicy = temporalio.common.NexusOperationIDReusePolicy.ALLOW_DUPLICATE, id_conflict_policy: temporalio.common.NexusOperationIDConflictPolicy = temporalio.common.NexusOperationIDConflictPolicy.FAIL, schedule_to_close_timeout: timedelta | None = None, schedule_to_start_timeout: timedelta | None = None, start_to_close_timeout: timedelta | None = None, search_attributes: temporalio.common.TypedSearchAttributes | None = None, summary: str | None = None, headers: Mapping[str, str] | None = None, rpc_metadata: Mapping[str, str | bytes] = {}, rpc_timeout: timedelta | None = None) -> OutputT:
@overload
@abstractmethod
async def execute_operation(self, operation: Callable[..., Any], arg: Any, *, id: str, id_reuse_policy: temporalio.common.NexusOperationIDReusePolicy = temporalio.common.NexusOperationIDReusePolicy.ALLOW_DUPLICATE, id_conflict_policy: temporalio.common.NexusOperationIDConflictPolicy = temporalio.common.NexusOperationIDConflictPolicy.FAIL, result_type: type[OutputT], schedule_to_close_timeout: timedelta | None = None, schedule_to_start_timeout: timedelta | None = None, start_to_close_timeout: timedelta | None = None, search_attributes: temporalio.common.TypedSearchAttributes | None = None, summary: str | None = None, headers: Mapping[str, str] | None = None, rpc_metadata: Mapping[str, str | bytes] = {}, rpc_timeout: timedelta | None = None) -> OutputT:
@overload
@abstractmethod
async def execute_operation(self, operation: Callable[..., Any], arg: Any, *, id: str, id_reuse_policy: temporalio.common.NexusOperationIDReusePolicy = temporalio.common.NexusOperationIDReusePolicy.ALLOW_DUPLICATE, id_conflict_policy: temporalio.common.NexusOperationIDConflictPolicy = temporalio.common.NexusOperationIDConflictPolicy.FAIL, schedule_to_close_timeout: timedelta | None = None, schedule_to_start_timeout: timedelta | None = None, start_to_close_timeout: timedelta | None = None, search_attributes: temporalio.common.TypedSearchAttributes | None = None, summary: str | None = None, headers: Mapping[str, str] | None = None, rpc_metadata: Mapping[str, str | bytes] = {}, rpc_timeout: timedelta | None = None) -> Any:
@overload
@abstractmethod
async def execute_operation(self, operation: str, arg: Any, *, id: str, id_reuse_policy: temporalio.common.NexusOperationIDReusePolicy = temporalio.common.NexusOperationIDReusePolicy.ALLOW_DUPLICATE, id_conflict_policy: temporalio.common.NexusOperationIDConflictPolicy = temporalio.common.NexusOperationIDConflictPolicy.FAIL, result_type: type[OutputT], schedule_to_close_timeout: timedelta | None = None, schedule_to_start_timeout: timedelta | None = None, start_to_close_timeout: timedelta | None = None, search_attributes: temporalio.common.TypedSearchAttributes | None = None, summary: str | None = None, headers: Mapping[str, str] | None = None, rpc_metadata: Mapping[str, str | bytes] = {}, rpc_timeout: timedelta | None = None) -> OutputT:
@overload
@abstractmethod
async def execute_operation(self, operation: str, arg: Any, *, id: str, id_reuse_policy: temporalio.common.NexusOperationIDReusePolicy = temporalio.common.NexusOperationIDReusePolicy.ALLOW_DUPLICATE, id_conflict_policy: temporalio.common.NexusOperationIDConflictPolicy = temporalio.common.NexusOperationIDConflictPolicy.FAIL, schedule_to_close_timeout: timedelta | None = None, schedule_to_start_timeout: timedelta | None = None, start_to_close_timeout: timedelta | None = None, search_attributes: temporalio.common.TypedSearchAttributes | None = None, summary: str | None = None, headers: Mapping[str, str] | None = None, rpc_metadata: Mapping[str, str | bytes] = {}, rpc_timeout: timedelta | None = None) -> Any:
@abstractmethod
(source)

Start a Nexus operation and wait for its result.

Warning

This API is experimental and unstable.

This is a shortcut for await (await nexus_client.start_operation(...)).result().

Parameters
operation:nexusrpc.Operation[Any, Any] | str | Callable[..., Any]The operation to execute. Can be a nexusrpc.Operation, a callable operation method, or a string name.
arg:AnyInput argument for the operation.
id:strUnique identifier for this operation.
id_reuse_policy:temporalio.common.NexusOperationIDReusePolicyPolicy for reusing operation IDs.
id_conflict_policy:temporalio.common.NexusOperationIDConflictPolicyPolicy for handling ID conflicts.
result_type:type | NoneThe result type to deserialize into.
schedule_to_close_timeout:timedelta | NoneEnd-to-end timeout for the Nexus operation. If unset, defaults to the maximum allowed by the Temporal server.
schedule_to_start_timeout:timedelta | NoneMaximum time to wait for the operation to be started (or completed, if synchronous) by the handler. If unset, no schedule-to-start timeout is enforced.
start_to_close_timeout:timedelta | NoneMaximum time to wait for an asynchronous operation to complete after it has been started. Only applies to asynchronous operations and is ignored for synchronous operations. If unset, no start-to-close timeout is enforced.
search_attributes:temporalio.common.TypedSearchAttributes | NoneSearch attributes for the operation.
summary:str | NoneSummary for the operation.
headers:Mapping[str, str] | NoneHeaders to attach to the Nexus request.
rpc_metadata:Mapping[str, str | bytes]Headers used on the RPC call.
rpc_timeout:timedelta | NoneOptional RPC deadline to set for the RPC call.
Returns
AnyThe result of the operation.
@overload
@abstractmethod
async def start_operation(self, operation: nexusrpc.Operation[InputT, OutputT], arg: InputT, *, id: str, id_reuse_policy: temporalio.common.NexusOperationIDReusePolicy = temporalio.common.NexusOperationIDReusePolicy.ALLOW_DUPLICATE, id_conflict_policy: temporalio.common.NexusOperationIDConflictPolicy = temporalio.common.NexusOperationIDConflictPolicy.FAIL, schedule_to_close_timeout: timedelta | None = None, schedule_to_start_timeout: timedelta | None = None, start_to_close_timeout: timedelta | None = None, search_attributes: temporalio.common.TypedSearchAttributes | None = None, summary: str | None = None, headers: Mapping[str, str] | None = None, rpc_metadata: Mapping[str, str | bytes] = {}, rpc_timeout: timedelta | None = None) -> NexusOperationHandle[OutputT]:
@overload
@abstractmethod
async def start_operation(self, operation: Callable[..., Any], arg: Any, *, id: str, id_reuse_policy: temporalio.common.NexusOperationIDReusePolicy = temporalio.common.NexusOperationIDReusePolicy.ALLOW_DUPLICATE, id_conflict_policy: temporalio.common.NexusOperationIDConflictPolicy = temporalio.common.NexusOperationIDConflictPolicy.FAIL, result_type: type[OutputT], schedule_to_close_timeout: timedelta | None = None, schedule_to_start_timeout: timedelta | None = None, start_to_close_timeout: timedelta | None = None, search_attributes: temporalio.common.TypedSearchAttributes | None = None, summary: str | None = None, headers: Mapping[str, str] | None = None, rpc_metadata: Mapping[str, str | bytes] = {}, rpc_timeout: timedelta | None = None) -> NexusOperationHandle[OutputT]:
@overload
@abstractmethod
async def start_operation(self, operation: Callable[..., Any], arg: Any, *, id: str, id_reuse_policy: temporalio.common.NexusOperationIDReusePolicy = temporalio.common.NexusOperationIDReusePolicy.ALLOW_DUPLICATE, id_conflict_policy: temporalio.common.NexusOperationIDConflictPolicy = temporalio.common.NexusOperationIDConflictPolicy.FAIL, schedule_to_close_timeout: timedelta | None = None, schedule_to_start_timeout: timedelta | None = None, start_to_close_timeout: timedelta | None = None, search_attributes: temporalio.common.TypedSearchAttributes | None = None, summary: str | None = None, headers: Mapping[str, str] | None = None, rpc_metadata: Mapping[str, str | bytes] = {}, rpc_timeout: timedelta | None = None) -> NexusOperationHandle[Any]:
@overload
@abstractmethod
async def start_operation(self, operation: str, arg: Any, *, id: str, id_reuse_policy: temporalio.common.NexusOperationIDReusePolicy = temporalio.common.NexusOperationIDReusePolicy.ALLOW_DUPLICATE, id_conflict_policy: temporalio.common.NexusOperationIDConflictPolicy = temporalio.common.NexusOperationIDConflictPolicy.FAIL, result_type: type[OutputT], schedule_to_close_timeout: timedelta | None = None, schedule_to_start_timeout: timedelta | None = None, start_to_close_timeout: timedelta | None = None, search_attributes: temporalio.common.TypedSearchAttributes | None = None, summary: str | None = None, headers: Mapping[str, str] | None = None, rpc_metadata: Mapping[str, str | bytes] = {}, rpc_timeout: timedelta | None = None) -> NexusOperationHandle[OutputT]:
@overload
@abstractmethod
async def start_operation(self, operation: str, arg: Any, *, id: str, id_reuse_policy: temporalio.common.NexusOperationIDReusePolicy = temporalio.common.NexusOperationIDReusePolicy.ALLOW_DUPLICATE, id_conflict_policy: temporalio.common.NexusOperationIDConflictPolicy = temporalio.common.NexusOperationIDConflictPolicy.FAIL, schedule_to_close_timeout: timedelta | None = None, schedule_to_start_timeout: timedelta | None = None, start_to_close_timeout: timedelta | None = None, search_attributes: temporalio.common.TypedSearchAttributes | None = None, summary: str | None = None, headers: Mapping[str, str] | None = None, rpc_metadata: Mapping[str, str | bytes] = {}, rpc_timeout: timedelta | None = None) -> NexusOperationHandle[Any]:
@abstractmethod
(source)

Start a Nexus operation and return a handle.

Warning

This API is experimental and unstable.

Parameters
operation:nexusrpc.Operation[Any, Any] | str | Callable[..., Any]The operation to start. Can be a nexusrpc.Operation, a callable operation method, or a string name.
arg:AnyInput argument for the operation.
id:strUnique identifier for this operation.
id_reuse_policy:temporalio.common.NexusOperationIDReusePolicyPolicy for reusing operation IDs.
id_conflict_policy:temporalio.common.NexusOperationIDConflictPolicyPolicy for handling ID conflicts.
result_type:type | NoneThe result type to deserialize into.
schedule_to_close_timeout:timedelta | NoneEnd-to-end timeout for the Nexus operation. If unset, defaults to the maximum allowed by the Temporal server.
schedule_to_start_timeout:timedelta | NoneMaximum time to wait for the operation to be started (or completed, if synchronous) by the handler. If unset, no schedule-to-start timeout is enforced.
start_to_close_timeout:timedelta | NoneMaximum time to wait for an asynchronous operation to complete after it has been started. Only applies to asynchronous operations and is ignored for synchronous operations. If unset, no start-to-close timeout is enforced.
search_attributes:temporalio.common.TypedSearchAttributes | NoneSearch attributes for the operation.
summary:str | NoneSummary for the operation.
headers:Mapping[str, str] | NoneHeaders to attach to the Nexus request.
rpc_metadata:Mapping[str, str | bytes]Headers used on the RPC call.
rpc_timeout:timedelta | NoneOptional RPC deadline to set for the RPC call.
Returns
NexusOperationHandle[Any]A handle to the started operation.