2132
targetVersion *deploymentspb.WorkerDeploymentVersion,
2133
err error,
2135
>
// Note: Revision number mechanics are only involved if the dynamic config, UseRevisionNumberForWorkerVersioning, is enabled.
2136
>
// Represents the revision number used by the task and is max(taskDirectiveRevisionNumber, routingConfigRevisionNumber) for the task.
2137
>
var taskDispatchRevisionNumber, targetDeploymentRevisionNumber int64
2138
>
2139
>
wfBehavior := directive.GetBehavior()
2140
>
deployment := worker_versioning.DirectiveDeployment(directive)
2141
>
2142
>
perTypeUserData, userDataChanged, err := pm.getPerTypeUserData()
2143
>
if err != nil {
2144
return nil, nil, nil, 0, nil, err
2145
}
2147
>
taskDirectiveRevisionNumber := directive.GetRevisionNumber()
2148
>
2149
>
dbq := pm.defaultQueue()
2150
>
if dbq == nil {
2151
return nil, nil, nil, 0, nil, errDefaultQueueNotInit
2152
}
2153
2154
>
current, currentRevisionNumber, _, ramping, _, rampingPercentage, rampingRevisionNumber, _ := worker_versioning.CalculateTaskQueueVersioningInfo(deploymentData)
task_queue_partition_manager.go
2155
>
targetDeploymentVersion, targetDeploymentRevisionNumber := worker_versioning.FindTargetDeploymentVersionAndRevisionNumberForWorkflowID(
2156
>
current,
2157
>
currentRevisionNumber,
2158
>
ramping,
2159
>
rampingPercentage,
2160
>
rampingRevisionNumber,
2161
>
workflowId,
2162
>
directive.GetUseRampingVersion(),
2163
>
)
2164
>
targetDeployment := worker_versioning.DeploymentFromDeploymentVersion(targetDeploymentVersion)
2165
>
2166
>
if wfBehavior == enumspb.VERSIONING_BEHAVIOR_PINNED {
2167
if pm.partition.Kind() == enumspb.TASK_QUEUE_KIND_STICKY {
2168
// TODO (shahab): we can verify the passed deployment matches the last poller's deployment