MCPcopy Create free account
hub / github.com/temporalio/temporal / pollTask

Method pollTask

common/testing/taskpoller/taskpoller.go:341–393  ·  view source on GitHub ↗

revive:disable-next-line:cognitive-complexity

(
	ctx context.Context,
	opts *options,
)

Source from the content-addressed store, hash-verified

339
340//revive:disable-next-line:cognitive-complexity
341func (p *workflowTaskPoller) pollTask(
342 ctx context.Context,
343 opts *options,
344) (*workflowservice.PollWorkflowTaskQueueResponse, error) {
345 p.t.Helper()
346
347 req := common.CloneProto(p.pollWorkflowTaskRequest)
348 if req.Namespace == "" {
349 req.Namespace = p.namespace
350 }
351 if req.TaskQueue == nil {
352 req.TaskQueue = opts.tv.TaskQueue()
353 }
354 if req.Identity == "" {
355 req.Identity = opts.tv.WorkerIdentity()
356 }
357 resp, err := p.client.PollWorkflowTaskQueue(ctx, req)
358 if err != nil {
359 return nil, err
360 }
361 if resp == nil || resp.TaskToken == nil {
362 return nil, NoWorkflowTaskAvailable
363 }
364
365 var events []*historypb.HistoryEvent
366 history := resp.History
367 if history == nil {
368 return nil, errors.New("history is nil")
369 }
370
371 events = history.Events
372 if len(events) == 0 && req.TaskQueue.GetKind() != enumspb.TASK_QUEUE_KIND_STICKY {
373 return nil, errors.New("history events are empty")
374 }
375
376 nextPageToken := resp.NextPageToken
377 for nextPageToken != nil {
378 resp, err := p.client.GetWorkflowExecutionHistory(
379 ctx,
380 &workflowservice.GetWorkflowExecutionHistoryRequest{
381 Namespace: p.namespace,
382 Execution: resp.WorkflowExecution,
383 NextPageToken: nextPageToken,
384 })
385 if err != nil {
386 return nil, err
387 }
388 events = append(events, resp.History.Events...)
389 nextPageToken = resp.NextPageToken
390 }
391
392 return resp, err
393}
394
395func (p *workflowTaskPoller) HandleLegacyQuery(
396 tv *testvars.TestVars,

Callers 2

pollAndHandleTaskMethod · 0.95

Calls 8

CloneProtoFunction · 0.92
WorkerIdentityMethod · 0.80
GetKindMethod · 0.80
HelperMethod · 0.65
TaskQueueMethod · 0.65
PollWorkflowTaskQueueMethod · 0.65
NewMethod · 0.65

Tested by

no test coverage detected