@@ -226,13 +226,13 @@ worker = Worker(
226226Workflows stay locked to their original Worker version:
227227
228228``` python
229- from temporalio.workflow import VersioningBehavior
229+ from temporalio import workflow
230+ from temporalio.common import VersioningBehavior
230231
231- @workflow.defn
232+ @workflow.defn ( versioning_behavior = VersioningBehavior. PINNED )
232233class StableWorkflow :
233234 @workflow.run
234235 async def run (self ) -> str :
235- # This workflow will always run on its assigned version
236236 return await workflow.execute_activity(
237237 process_order,
238238 start_to_close_timeout = timedelta(minutes = 5 ),
@@ -250,6 +250,20 @@ class StableWorkflow:
250250
251251Workflows can move to newer versions:
252252
253+ ``` python
254+ from temporalio import workflow
255+ from temporalio.common import VersioningBehavior
256+
257+ @workflow.defn (versioning_behavior = VersioningBehavior.AUTO_UPGRADE )
258+ class UpgradableWorkflow :
259+ @workflow.run
260+ async def run (self ) -> str :
261+ return await workflow.execute_activity(
262+ process_order,
263+ start_to_close_timeout = timedelta(minutes = 5 ),
264+ )
265+ ```
266+
253267** When to use AUTO_UPGRADE:**
254268
255269- Long-running workflows (weeks or months)
@@ -262,7 +276,6 @@ Workflows can move to newer versions:
262276### Worker Configuration with Default Behavior
263277
264278``` python
265- # For short-running workflows, prefer PINNED
266279worker = Worker(
267280 client,
268281 task_queue = " orders-task-queue" ,
@@ -274,7 +287,7 @@ worker = Worker(
274287 build_id = os.environ[" BUILD_ID" ],
275288 ),
276289 use_worker_versioning = True ,
277- # default_versioning_behavior=VersioningBehavior.PINNED,
290+ default_versioning_behavior = VersioningBehavior.PINNED ,
278291 ),
279292)
280293```
0 commit comments