524
}
525
526
>
func (h *Handler) PollNexusTaskQueue(ctx context.Context, request *matchingservice.PollNexusTaskQueueRequest) (_ *matchingservice.PollNexusTaskQueueResponse, retError error) {
handler.go
527
>
defer log.CapturePanic(h.logger, &retError)
528
>
opMetrics := h.opMetricsHandler(
529
>
request.GetNamespaceId(),
530
>
request.GetRequest().GetTaskQueue(),
531
>
enumspb.TASK_QUEUE_TYPE_NEXUS,
532
>
metrics.MatchingPollWorkflowTaskQueueScope,
533
>
)
534
>
// Only record on the initial handler call (ForwardedSource == ""), not on
535
>
// the forwarded call to the root partition, to avoid double-counting.
536
>
if request.GetForwardedSource() == "" {
537
>
h.recordNexusTaskRequest(ctx, request.GetNamespaceId(), request.GetRequest().GetTaskQueue().GetKind(), "PollNexusTaskQueue")
538
>
}
539
540
>
if request.GetForwardedSource() != "" {
handler.go
541
h.reportForwardedPerTaskQueueCounter(opMetrics, namespace.ID(request.GetNamespaceId()))
542
}
543
544
>
if _, err := common.ValidateLongPollContextTimeoutIsSet(
handler.go
545
>
ctx,
546
>
"PollNexusTaskQueue",
547
>
h.throttledLogger,
548
>
); err != nil {
549
return nil, err
550
}
551
>
return h.engine.PollNexusTaskQueue(ctx, request, opMetrics)
handler.go
552
}
553