Class WorkflowServiceGrpc.WorkflowServiceBlockingStub

  • Enclosing class:
    WorkflowServiceGrpc

    public static final class WorkflowServiceGrpc.WorkflowServiceBlockingStub
    extends io.grpc.stub.AbstractBlockingStub<WorkflowServiceGrpc.WorkflowServiceBlockingStub>
     WorkflowService API defines how Temporal SDKs and other clients interact with the Temporal server
     to create and interact with workflows and activities.
     Users are expected to call `StartWorkflowExecution` to create a new workflow execution.
     To drive workflows, a worker using a Temporal SDK must exist which regularly polls for workflow
     and activity tasks from the service. For each workflow task, the sdk must process the
     (incremental or complete) event history and respond back with any newly generated commands.
     For each activity task, the worker is expected to execute the user's code which implements that
     activity, responding with completion or failure.
     
    • Method Detail

      • registerNamespace

        public RegisterNamespaceResponse registerNamespace​(RegisterNamespaceRequest request)
         RegisterNamespace creates a new namespace which can be used as a container for all resources.
         A Namespace is a top level entity within Temporal, and is used as a container for resources
         like workflow executions, task queues, etc. A Namespace acts as a sandbox and provides
         isolation for all resources within the namespace. All resources belongs to exactly one
         namespace.
         
      • updateNamespace

        public UpdateNamespaceResponse updateNamespace​(UpdateNamespaceRequest request)
         UpdateNamespace is used to update the information and configuration of a registered
         namespace.
         (-- api-linter: core::0134::method-signature=disabled
             aip.dev/not-precedent: UpdateNamespace RPC doesn't follow Google API format. --)
         (-- api-linter: core::0134::response-message-name=disabled
             aip.dev/not-precedent: UpdateNamespace RPC doesn't follow Google API format. --)
         
      • deprecateNamespace

        public DeprecateNamespaceResponse deprecateNamespace​(DeprecateNamespaceRequest request)
         DeprecateNamespace is used to update the state of a registered namespace to DEPRECATED.
         Once the namespace is deprecated it cannot be used to start new workflow executions. Existing
         workflow executions will continue to run on deprecated namespaces.
         Deprecated.
         
      • startWorkflowExecution

        public StartWorkflowExecutionResponse startWorkflowExecution​(StartWorkflowExecutionRequest request)
         StartWorkflowExecution starts a new workflow execution.
         It will create the execution with a `WORKFLOW_EXECUTION_STARTED` event in its history and
         also schedule the first workflow task. Returns `WorkflowExecutionAlreadyStarted`, if an
         instance already exists with same workflow id.
         
      • pollWorkflowTaskQueue

        public PollWorkflowTaskQueueResponse pollWorkflowTaskQueue​(PollWorkflowTaskQueueRequest request)
         PollWorkflowTaskQueue is called by workers to make progress on workflows.
         A WorkflowTask is dispatched to callers for active workflow executions with pending workflow
         tasks. The worker is expected to call `RespondWorkflowTaskCompleted` when it is done
         processing the task. The service will create a `WorkflowTaskStarted` event in the history for
         this task before handing it to the worker.
         
      • respondWorkflowTaskCompleted

        public RespondWorkflowTaskCompletedResponse respondWorkflowTaskCompleted​(RespondWorkflowTaskCompletedRequest request)
         RespondWorkflowTaskCompleted is called by workers to successfully complete workflow tasks
         they received from `PollWorkflowTaskQueue`.
         Completing a WorkflowTask will write a `WORKFLOW_TASK_COMPLETED` event to the workflow's
         history, along with events corresponding to whatever commands the SDK generated while
         executing the task (ex timer started, activity task scheduled, etc).
         
      • respondWorkflowTaskFailed

        public RespondWorkflowTaskFailedResponse respondWorkflowTaskFailed​(RespondWorkflowTaskFailedRequest request)
         RespondWorkflowTaskFailed is called by workers to indicate the processing of a workflow task
         failed.
         This results in a `WORKFLOW_TASK_FAILED` event written to the history, and a new workflow
         task will be scheduled. This API can be used to report unhandled failures resulting from
         applying the workflow task.
         Temporal will only append first WorkflowTaskFailed event to the history of workflow execution
         for consecutive failures.
         
      • pollActivityTaskQueue

        public PollActivityTaskQueueResponse pollActivityTaskQueue​(PollActivityTaskQueueRequest request)
         PollActivityTaskQueue is called by workers to process activity tasks from a specific task
         queue.
         The worker is expected to call one of the `RespondActivityTaskXXX` methods when it is done
         processing the task.
         An activity task is dispatched whenever a `SCHEDULE_ACTIVITY_TASK` command is produced during
         workflow execution. An in memory `ACTIVITY_TASK_STARTED` event is written to mutable state
         before the task is dispatched to the worker. The started event, and the final event
         (`ACTIVITY_TASK_COMPLETED` / `ACTIVITY_TASK_FAILED` / `ACTIVITY_TASK_TIMED_OUT`) will both be
         written permanently to Workflow execution history when Activity is finished. This is done to
         avoid writing many events in the case of a failure/retry loop.
         
      • recordActivityTaskHeartbeat

        public RecordActivityTaskHeartbeatResponse recordActivityTaskHeartbeat​(RecordActivityTaskHeartbeatRequest request)
         RecordActivityTaskHeartbeat is optionally called by workers while they execute activities.
         If worker fails to heartbeat within the `heartbeat_timeout` interval for the activity task,
         then it will be marked as timed out and an `ACTIVITY_TASK_TIMED_OUT` event will be written to
         the workflow history. Calling `RecordActivityTaskHeartbeat` will fail with `NotFound` in
         such situations, in that event, the SDK should request cancellation of the activity.
         
      • recordActivityTaskHeartbeatById

        public RecordActivityTaskHeartbeatByIdResponse recordActivityTaskHeartbeatById​(RecordActivityTaskHeartbeatByIdRequest request)
         See `RecordActivityTaskHeartbeat`. This version allows clients to record heartbeats by
         namespace/workflow id/activity id instead of task token.
         (-- api-linter: core::0136::prepositions=disabled
             aip.dev/not-precedent: "By" is used to indicate request type. --)
         
      • respondActivityTaskCompleted

        public RespondActivityTaskCompletedResponse respondActivityTaskCompleted​(RespondActivityTaskCompletedRequest request)
         RespondActivityTaskCompleted is called by workers when they successfully complete an activity
         task.
         This results in a new `ACTIVITY_TASK_COMPLETED` event being written to the workflow history
         and a new workflow task created for the workflow. Fails with `NotFound` if the task token is
         no longer valid due to activity timeout, already being completed, or never having existed.
         
      • respondActivityTaskCompletedById

        public RespondActivityTaskCompletedByIdResponse respondActivityTaskCompletedById​(RespondActivityTaskCompletedByIdRequest request)
         See `RecordActivityTaskCompleted`. This version allows clients to record completions by
         namespace/workflow id/activity id instead of task token.
         (-- api-linter: core::0136::prepositions=disabled
             aip.dev/not-precedent: "By" is used to indicate request type. --)
         
      • respondActivityTaskFailed

        public RespondActivityTaskFailedResponse respondActivityTaskFailed​(RespondActivityTaskFailedRequest request)
         RespondActivityTaskFailed is called by workers when processing an activity task fails.
         This results in a new `ACTIVITY_TASK_FAILED` event being written to the workflow history and
         a new workflow task created for the workflow. Fails with `NotFound` if the task token is no
         longer valid due to activity timeout, already being completed, or never having existed.
         
      • respondActivityTaskFailedById

        public RespondActivityTaskFailedByIdResponse respondActivityTaskFailedById​(RespondActivityTaskFailedByIdRequest request)
         See `RecordActivityTaskFailed`. This version allows clients to record failures by
         namespace/workflow id/activity id instead of task token.
         (-- api-linter: core::0136::prepositions=disabled
             aip.dev/not-precedent: "By" is used to indicate request type. --)
         
      • respondActivityTaskCanceled

        public RespondActivityTaskCanceledResponse respondActivityTaskCanceled​(RespondActivityTaskCanceledRequest request)
         RespondActivityTaskFailed is called by workers when processing an activity task fails.
         This results in a new `ACTIVITY_TASK_CANCELED` event being written to the workflow history
         and a new workflow task created for the workflow. Fails with `NotFound` if the task token is
         no longer valid due to activity timeout, already being completed, or never having existed.
         
      • respondActivityTaskCanceledById

        public RespondActivityTaskCanceledByIdResponse respondActivityTaskCanceledById​(RespondActivityTaskCanceledByIdRequest request)
         See `RecordActivityTaskCanceled`. This version allows clients to record failures by
         namespace/workflow id/activity id instead of task token.
         (-- api-linter: core::0136::prepositions=disabled
             aip.dev/not-precedent: "By" is used to indicate request type. --)
         
      • requestCancelWorkflowExecution

        public RequestCancelWorkflowExecutionResponse requestCancelWorkflowExecution​(RequestCancelWorkflowExecutionRequest request)
         RequestCancelWorkflowExecution is called by workers when they want to request cancellation of
         a workflow execution.
         This results in a new `WORKFLOW_EXECUTION_CANCEL_REQUESTED` event being written to the
         workflow history and a new workflow task created for the workflow. It returns success if the requested
         workflow is already closed. It fails with 'NotFound' if the requested workflow doesn't exist.
         
      • signalWorkflowExecution

        public SignalWorkflowExecutionResponse signalWorkflowExecution​(SignalWorkflowExecutionRequest request)
         SignalWorkflowExecution is used to send a signal to a running workflow execution.
         This results in a `WORKFLOW_EXECUTION_SIGNALED` event recorded in the history and a workflow
         task being created for the execution.
         
      • signalWithStartWorkflowExecution

        public SignalWithStartWorkflowExecutionResponse signalWithStartWorkflowExecution​(SignalWithStartWorkflowExecutionRequest request)
         SignalWithStartWorkflowExecution is used to ensure a signal is sent to a workflow, even if
         it isn't yet started.
         If the workflow is running, a `WORKFLOW_EXECUTION_SIGNALED` event is recorded in the history
         and a workflow task is generated.
         If the workflow is not running or not found, then the workflow is created with
         `WORKFLOW_EXECUTION_STARTED` and `WORKFLOW_EXECUTION_SIGNALED` events in its history, and a
         workflow task is generated.
         (-- api-linter: core::0136::prepositions=disabled
             aip.dev/not-precedent: "With" is used to indicate combined operation. --)
         
      • resetWorkflowExecution

        public ResetWorkflowExecutionResponse resetWorkflowExecution​(ResetWorkflowExecutionRequest request)
         ResetWorkflowExecution will reset an existing workflow execution to a specified
         `WORKFLOW_TASK_COMPLETED` event (exclusive). It will immediately terminate the current
         execution instance.
         TODO: Does exclusive here mean *just* the completed event, or also WFT started? Otherwise the task is doomed to time out?
         
      • terminateWorkflowExecution

        public TerminateWorkflowExecutionResponse terminateWorkflowExecution​(TerminateWorkflowExecutionRequest request)
         TerminateWorkflowExecution terminates an existing workflow execution by recording a
         `WORKFLOW_EXECUTION_TERMINATED` event in the history and immediately terminating the
         execution instance.
         
      • deleteWorkflowExecution

        public DeleteWorkflowExecutionResponse deleteWorkflowExecution​(DeleteWorkflowExecutionRequest request)
         DeleteWorkflowExecution asynchronously deletes a specific Workflow Execution (when
         WorkflowExecution.run_id is provided) or the latest Workflow Execution (when
         WorkflowExecution.run_id is not provided). If the Workflow Execution is Running, it will be
         terminated before deletion.
         (-- api-linter: core::0135::method-signature=disabled
             aip.dev/not-precedent: DeleteNamespace RPC doesn't follow Google API format. --)
         (-- api-linter: core::0135::response-message-name=disabled
             aip.dev/not-precedent: DeleteNamespace RPC doesn't follow Google API format. --)
         
      • respondQueryTaskCompleted

        public RespondQueryTaskCompletedResponse respondQueryTaskCompleted​(RespondQueryTaskCompletedRequest request)
         RespondQueryTaskCompleted is called by workers to complete queries which were delivered on
         the `query` (not `queries`) field of a `PollWorkflowTaskQueueResponse`.
         Completing the query will unblock the corresponding client call to `QueryWorkflow` and return
         the query result a response.
         
      • resetStickyTaskQueue

        public ResetStickyTaskQueueResponse resetStickyTaskQueue​(ResetStickyTaskQueueRequest request)
         ResetStickyTaskQueue resets the sticky task queue related information in the mutable state of
         a given workflow. This is prudent for workers to perform if a workflow has been paged out of
         their cache.
         Things cleared are:
         1. StickyTaskQueue
         2. StickyScheduleToStartTimeout
         
      • createSchedule

        public CreateScheduleResponse createSchedule​(CreateScheduleRequest request)
         Creates a new schedule.
         (-- api-linter: core::0133::method-signature=disabled
             aip.dev/not-precedent: CreateSchedule doesn't follow Google API format --)
         (-- api-linter: core::0133::response-message-name=disabled
             aip.dev/not-precedent: CreateSchedule doesn't follow Google API format --)
         (-- api-linter: core::0133::http-uri-parent=disabled
             aip.dev/not-precedent: CreateSchedule doesn't follow Google API format --)
         
      • updateSchedule

        public UpdateScheduleResponse updateSchedule​(UpdateScheduleRequest request)
         Changes the configuration or state of an existing schedule.
         (-- api-linter: core::0134::response-message-name=disabled
             aip.dev/not-precedent: UpdateSchedule RPC doesn't follow Google API format. --)
         (-- api-linter: core::0134::method-signature=disabled
             aip.dev/not-precedent: UpdateSchedule RPC doesn't follow Google API format. --)
         
      • patchSchedule

        public PatchScheduleResponse patchSchedule​(PatchScheduleRequest request)
         Makes a specific change to a schedule or triggers an immediate action.
         (-- api-linter: core::0134::synonyms=disabled
             aip.dev/not-precedent: we have both patch and update. --)
         
      • deleteSchedule

        public DeleteScheduleResponse deleteSchedule​(DeleteScheduleRequest request)
         Deletes a schedule, removing it from the system.
         (-- api-linter: core::0135::method-signature=disabled
             aip.dev/not-precedent: DeleteSchedule doesn't follow Google API format --)
         (-- api-linter: core::0135::response-message-name=disabled
             aip.dev/not-precedent: DeleteSchedule doesn't follow Google API format --)
         
      • updateWorkerBuildIdCompatibility

        public UpdateWorkerBuildIdCompatibilityResponse updateWorkerBuildIdCompatibility​(UpdateWorkerBuildIdCompatibilityRequest request)
         Allows users to specify sets of worker build id versions on a per task queue basis. Versions
         are ordered, and may be either compatible with some extant version, or a new incompatible
         version, forming sets of ids which are incompatible with each other, but whose contained
         members are compatible with one another.
         A single build id may be mapped to multiple task queues using this API for cases where a single process hosts
         multiple workers. 
         
         To query which workers can be retired, use the `GetWorkerTaskReachability` API.
         NOTE: The number of task queues mapped to a single build id is limited by the `limit.taskQueuesPerBuildId`
         (default is 20), if this limit is exceeded this API will error with a FailedPrecondition.
         (-- api-linter: core::0134::response-message-name=disabled
             aip.dev/not-precedent: UpdateWorkerBuildIdCompatibility RPC doesn't follow Google API format. --)
         (-- api-linter: core::0134::method-signature=disabled
             aip.dev/not-precedent: UpdateWorkerBuildIdCompatibility RPC doesn't follow Google API format. --)
         
      • getWorkerTaskReachability

        public GetWorkerTaskReachabilityResponse getWorkerTaskReachability​(GetWorkerTaskReachabilityRequest request)
         Fetches task reachability to determine whether a worker may be retired.
         The request may specify task queues to query for or let the server fetch all task queues mapped to the given
         build IDs.
         When requesting a large number of task queues or all task queues associated with the given build ids in a
         namespace, all task queues will be listed in the response but some of them may not contain reachability
         information due to a server enforced limit. When reaching the limit, task queues that reachability information
         could not be retrieved for will be marked with a single TASK_REACHABILITY_UNSPECIFIED entry. The caller may issue
         another call to get the reachability for those task queues.
         Open source users can adjust this limit by setting the server's dynamic config value for
         `limit.reachabilityTaskQueueScan` with the caveat that this call can strain the visibility store.
         
      • updateWorkflowExecution

        public UpdateWorkflowExecutionResponse updateWorkflowExecution​(UpdateWorkflowExecutionRequest request)
         Invokes the specified update function on user workflow code.
         (-- api-linter: core::0134=disabled
             aip.dev/not-precedent: UpdateWorkflowExecution doesn't follow Google API format --)
         
      • pollWorkflowExecutionUpdate

        public PollWorkflowExecutionUpdateResponse pollWorkflowExecutionUpdate​(PollWorkflowExecutionUpdateRequest request)
         Polls a workflow execution for the outcome of a workflow execution update
         previously issued through the UpdateWorkflowExecution RPC. The effective
         timeout on this call will be shorter of the the caller-supplied gRPC
         timeout and the server's configured long-poll timeout.
         (-- api-linter: core::0134=disabled
             aip.dev/not-precedent: UpdateWorkflowExecution doesn't follow Google API format --)