689
}
690
692
>
for {
693
>
err := common.IsValidContext(ctx)
694
>
if err != nil {
695
return nil, err
696
}
697
// Add frontend generated pollerID to context so taskqueueMgr can support cancellation of
698
// long-poll when frontend calls CancelOutstandingPoll API
700
>
pollerCtx = context.WithValue(pollerCtx, identityKey, request.GetIdentity())
701
>
partition, err := tqid.PartitionFromProto(request.TaskQueue, req.NamespaceId, enumspb.TASK_QUEUE_TYPE_WORKFLOW)
702
>
if err != nil {
703
return nil, err
704
}
706
>
workerVersionCapabilities: request.WorkerVersionCapabilities,
707
>
deploymentOptions: request.DeploymentOptions,
708
>
forwardedFrom: req.ForwardedSource,
709
>
conditions: req.Conditions,
710
>
workerInstanceKey: request.WorkerInstanceKey,
711
>
workerControlTaskQueue: request.WorkerControlTaskQueue,
712
>
}
713
>
task, versionSetUsed, err := e.pollTask(pollerCtx, partition, pollMetadata)
714
>
if err != nil {
715
if errors.Is(err, errNoTasks) {
716
return emptyPollWorkflowTaskQueueResponse, nil