Temporal CLI batch command reference
Batch commands change multiple Workflow Executions by providing a List Filter and the type of Batch Job to execute. The List Filter identifies the Workflow Executions in the Batch Job; the Batch type determines what will happen to the Workflow Executions.
There are three types of Batch Jobs:
- Cancel: cancels the Workflow Executions specified by the List Filter.
- Signal: sends a Signal to the Workflow Executions specified by the List Filter.
- Terminate: terminates the Workflow Executions specified by the List Filter.
Batch operations can affect multiple Workflows simultaneously. Depending on your needs, you might want to send Signals to running Workflows, Cancel them, or even Terminate them entirely. Below, are examples on these commands using Temporal's CLI for each type of Batch operation.
Using these commands will directly impact the Workflows you target, so it's important to use them judiciously.
What Are the CLI Commands for Batch operations in Temporal Workflows?
You can use the --query
flag to filter the Workflow Executions to be affected by the Batch Job.
To Cancel a Workflow
temporal workflow cancel \
--query 'ExecutionStatus = "Running" AND WorkflowType="YourWorkflow"' \
--reason "Testing"
To Signal a Workflow:
temporal workflow signal \
--workflow-id MyWorkflowId \
--name MySignal \
--input '{"Input": "As-JSON"}' \
--query 'ExecutionStatus = "Running" AND WorkflowType="YourWorkflow"' \
--reason "Testing"
To Terminate a Workflow:
temporal workflow terminate \
--query 'ExecutionStatus = "Running" AND WorkflowType="YourWorkflow"' \
--reason "Testing"
A successfully started Batch job will return a Job ID. Use this Job ID to execute other actions on the Batch job.
list
The temporal batch list
command returns all Batch jobs.
Batch Jobs can be returned for an entire Cluster or a single Namespace.
temporal batch list --namespace=MyNamespace
Use the following options to change the behavior of this command.
describe
The temporal batch describe
command shows the progress of an ongoing Batch job.
Pass a valid Job ID to return a Batch Job's information.
temporal batch describe --job-id=MyJobId
Use the following options to change the behavior of this command.
terminate
The temporal batch terminate
command terminates a Batch job with the provided Job ID.
For future reference, provide a reason for terminating the Batch Job.
temporal batch terminate --job-id=MyJobId --reason=JobReason
Use the following options to change the behavior of this command.