Configure a Worker for Versioning
You'll need to add a few additional configuration parameters to your Workers to toggle on Worker Versioning. There are three new parameters, with different names depending on the language:
UseVersioning: This enables the Versioning functionality for this Worker.- A
Versionto identify the revision that this Worker will be allowed to execute. This is a combination of a deployment name and a build ID number. - (Optional) The Default Versioning Behavior. If unset, you'll be required to specify the behavior on each Workflow. Or you can default to Pinned or Auto-Upgrade.
Follow the example for your SDK below. Select a concept to highlight the matching lines:
Highlight a concept
buildID := mustGetEnv("MY_BUILD_ID")w := worker.New(c, myTaskQueue, worker.Options{DeploymentOptions: worker.DeploymentOptions{UseVersioning: true,Version: worker.WorkerDeploymentVersion{DeploymentName: "llm_srv",BuildID: buildID,},DefaultVersioningBehavior: workflow.VersioningBehaviorUnspecified,},})
Highlight a concept
import io.temporal.worker.WorkerOptions;import io.temporal.common.VersioningBehavior;import io.temporal.common.WorkerDeploymentVersion;import io.temporal.worker.WorkerDeploymentOptions;WorkerOptions.newBuilder().setDeploymentOptions(WorkerDeploymentOptions.newBuilder().setVersion(new WorkerDeploymentVersion("llm_srv", "1.0")).setUseVersioning(true).setDefaultVersioningBehavior(VersioningBehavior.AUTO_UPGRADE).build()).build();
Highlight a concept
var myWorker = new TemporalWorker(Client,new TemporalWorkerOptions(taskQueue){DeploymentOptions = new(new("llm_srv", "1.0"), true){DefaultVersioningBehavior = VersioningBehavior.Unspecified,},}.AddWorkflow<MyWorkflow>());
Highlight a concept
from temporalio.common import WorkerDeploymentVersion, VersioningBehaviorfrom temporalio.worker import Worker, WorkerDeploymentConfigWorker(client,task_queue="mytaskqueue",workflows=workflows,activities=activities,deployment_config=WorkerDeploymentConfig(version=WorkerDeploymentVersion(deployment_name="llm_srv",build_id=my_env.build_id),use_worker_versioning=True,default_versioning_behavior=VersioningBehavior.UNSPECIFIED),)
Highlight a concept
worker = Temporalio::Worker.new(client: client,task_queue: task_queue,workflows: [MyWorkflow],deployment_options: Temporalio::Worker::DeploymentOptions.new(version: Temporalio::WorkerDeploymentVersion.new(deployment_name: 'llm_srv',build_id: '1.0'),use_worker_versioning: true,default_versioning_behavior: Temporalio::VersioningBehavior::UNSPECIFIED))
Highlight a concept
const myWorker = await Worker.create({workflowsPath: require.resolve('./workflows'),taskQueue,workerDeploymentOptions: {useWorkerVersioning: true,version: { buildId: '1.0', deploymentName: 'llm_srv' },},connection: nativeConnection,});