What is a Cluster?
What is a Cluster?
Clusters are a logical grouping for task runners.
Using clusters, you can scope certain tasks to a specific group of task runners.
Tasks, which are always submitted to a specific cluster, are only executed on task runners assigned to the same cluster.
Use Cases
Use clusters to organize task runners into logical groups, which can help with:- Targeting specific task runners for a particular job
- Reserving a group of task runners for specific purposes, such as running certain types of batch jobs
- Setting up different clusters for different environments (like development and production)
Adding Task Runners to a Cluster
You can add task runners to a cluster by specifying the cluster’s slug when registering a task runner. Each task runner must always be assigned to a cluster.Default Cluster
Each team has a default cluster that is automatically created for them. This cluster is used when no cluster is specified when registering a task runner or submitting a job. This is useful when you are just getting started and don’t need to create any custom clusters yet.Managing Clusters
Before registering a task runner or submitting a job, you must create a cluster. You can also list, fetch, and delete clusters as needed. The following sections explain how to do this. To manage clusters, first instantiate a cluster client using theclusters
method in the workflows client.
Creating a Cluster
To create a cluster, use thecreate
method on the cluster client and provide a name for the cluster.
Cluster Slug
Each cluster has a unique identifier, combining the cluster’s name and an automatically generated identifier. Use this slug to reference the cluster for other operations, like submitting a job or subtasks.Listing Clusters
To list all available clusters, use theall
method:
Fetching a Specific Cluster
To fetch a specific cluster, use thefind
method and pass the cluster’s slug:
Deleting a Cluster
To delete a cluster, use thedelete
method and pass the cluster’s slug:
Jobs Across Different Clusters
When submitting a job, you need to specify which cluster the job’s root task should be executed on. This allows you to direct the job to a specific set of task runners. By default, all sub-tasks within a job are also submitted to the same cluster, but this can be overridden to submit sub-tasks to different clusters if needed. See the example below for a job that spans across multiple clusters.DummyTask
registered.