Skip to content

Commit 71dd6cb

Browse files
committed
addressing review comments
1 parent a85110d commit 71dd6cb

File tree

2 files changed

+20
-17
lines changed

2 files changed

+20
-17
lines changed

internal/internal_task_pollers.go

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import (
2727
"context"
2828
"errors"
2929
"fmt"
30+
"go.uber.org/yarpc"
3031
"sync"
3132
"time"
3233

@@ -356,7 +357,7 @@ func (wtp *workflowTaskPoller) processWorkflowTask(task *workflowTask) error {
356357
func(response interface{}, startTime time.Time) (*workflowTask, error) {
357358
wtp.logger.Debug("Force RespondDecisionTaskCompleted.", zap.Int64("TaskStartedEventID", task.task.GetStartedEventId()))
358359
wtp.metricsScope.Counter(metrics.DecisionTaskForceCompleted).Inc(1)
359-
heartbeatResponse, err := wtp.RespondTaskCompleted(response, nil, task.task, startTime)
360+
heartbeatResponse, err := wtp.RespondTaskCompletedWithMetrics(response, nil, task.task, startTime)
360361
if err != nil {
361362
return nil, err
362363
}
@@ -375,7 +376,7 @@ func (wtp *workflowTaskPoller) processWorkflowTask(task *workflowTask) error {
375376
if errors.As(err, new(*decisionHeartbeatError)) {
376377
return err
377378
}
378-
response, err = wtp.RespondTaskCompleted(completedRequest, err, task.task, startTime)
379+
response, err = wtp.RespondTaskCompletedWithMetrics(completedRequest, err, task.task, startTime)
379380
if err != nil {
380381
return err
381382
}
@@ -404,7 +405,7 @@ func (wtp *workflowTaskPoller) processResetStickinessTask(rst *resetStickinessTa
404405
return nil
405406
}
406407

407-
func (wtp *workflowTaskPoller) RespondTaskCompleted(completedRequest interface{}, taskErr error, task *s.PollForDecisionTaskResponse, startTime time.Time) (response *s.RespondDecisionTaskCompletedResponse, err error) {
408+
func (wtp *workflowTaskPoller) RespondTaskCompletedWithMetrics(completedRequest interface{}, taskErr error, task *s.PollForDecisionTaskResponse, startTime time.Time) (response *s.RespondDecisionTaskCompletedResponse, err error) {
408409
metricsScope := wtp.metricsScope.GetTaggedScope(tagWorkflowType, task.WorkflowType.GetName())
409410
if taskErr != nil {
410411
metricsScope.Counter(metrics.DecisionExecutionFailedCounter).Inc(1)
@@ -444,7 +445,7 @@ func (wtp *workflowTaskPoller) respondTaskCompleted(completedRequest interface{}
444445
}
445446

446447
func (wtp *workflowTaskPoller) respondTaskCompletedAttempt(completedRequest interface{}, task *s.PollForDecisionTaskResponse) (*s.RespondDecisionTaskCompletedResponse, error) {
447-
ctx, cancel, _ := newChannelContext(context.Background(), wtp.featureFlags)
448+
ctx, cancel, opts := newChannelContext(context.Background(), wtp.featureFlags)
448449
defer cancel()
449450
var (
450451
err error
@@ -453,36 +454,38 @@ func (wtp *workflowTaskPoller) respondTaskCompletedAttempt(completedRequest inte
453454
)
454455
switch request := completedRequest.(type) {
455456
case *s.RespondDecisionTaskFailedRequest:
456-
err = wtp.handleDecisionFailedRequest(ctx, task, request)
457+
err = wtp.handleDecisionFailedRequest(ctx, task, request, opts...)
457458
operation = "RespondDecisionTaskFailed"
458459
case *s.RespondDecisionTaskCompletedRequest:
459-
response, err = wtp.handleDecisionTaskCompletedRequest(ctx, task, request)
460+
response, err = wtp.handleDecisionTaskCompletedRequest(ctx, task, request, opts...)
460461
operation = "RespondDecisionTaskCompleted"
461462
case *s.RespondQueryTaskCompletedRequest:
462-
err = wtp.service.RespondQueryTaskCompleted(ctx, request, getYarpcCallOptions(wtp.featureFlags)...)
463+
err = wtp.service.RespondQueryTaskCompleted(ctx, request, opts...)
463464
operation = "RespondQueryTaskCompleted"
464465
default:
465466
// should not happen
466467
panic("unknown request type from ProcessWorkflowTask()")
467468
}
468469

469470
traceLog(func() {
470-
wtp.logger.Debug("Call failed.", zap.Error(err), zap.String("Operation", operation))
471+
if err != nil {
472+
wtp.logger.Debug(fmt.Sprintf("%s failed.", operation), zap.Error(err))
473+
}
471474
})
472475

473476
return response, err
474477
}
475478

476-
func (wtp *workflowTaskPoller) handleDecisionFailedRequest(ctx context.Context, task *s.PollForDecisionTaskResponse, request *s.RespondDecisionTaskFailedRequest) error {
479+
func (wtp *workflowTaskPoller) handleDecisionFailedRequest(ctx context.Context, task *s.PollForDecisionTaskResponse, request *s.RespondDecisionTaskFailedRequest, opts ...yarpc.CallOption) error {
477480
// Only fail decision on first attempt, subsequent failure on the same decision task will timeout.
478481
// This is to avoid spin on the failed decision task. Checking Attempt not nil for older server.
479482
if task.Attempt != nil && task.GetAttempt() == 0 {
480-
return wtp.service.RespondDecisionTaskFailed(ctx, request, getYarpcCallOptions(wtp.featureFlags)...)
483+
return wtp.service.RespondDecisionTaskFailed(ctx, request, opts...)
481484
}
482485
return nil
483486
}
484487

485-
func (wtp *workflowTaskPoller) handleDecisionTaskCompletedRequest(ctx context.Context, task *s.PollForDecisionTaskResponse, request *s.RespondDecisionTaskCompletedRequest) (response *s.RespondDecisionTaskCompletedResponse, err error) {
488+
func (wtp *workflowTaskPoller) handleDecisionTaskCompletedRequest(ctx context.Context, task *s.PollForDecisionTaskResponse, request *s.RespondDecisionTaskCompletedRequest, opts ...yarpc.CallOption) (response *s.RespondDecisionTaskCompletedResponse, err error) {
486489
if request.StickyAttributes == nil && !wtp.disableStickyExecution {
487490
request.StickyAttributes = &s.StickyExecutionAttributes{
488491
WorkerTaskList: &s.TaskList{Name: common.StringPtr(getWorkerTaskList(wtp.stickyUUID))},
@@ -538,7 +541,7 @@ func (wtp *workflowTaskPoller) handleDecisionTaskCompletedRequest(ctx context.Co
538541
}()
539542
}
540543

541-
return wtp.service.RespondDecisionTaskCompleted(ctx, request, getYarpcCallOptions(wtp.featureFlags)...)
544+
return wtp.service.RespondDecisionTaskCompleted(ctx, request, opts...)
542545
}
543546

544547
func newLocalActivityPoller(params workerExecutionParameters, laTunnel *localActivityTunnel) *localActivityTaskPoller {

internal/internal_task_pollers_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ func TestRespondTaskCompleted_failed(t *testing.T) {
8282
BinaryChecksum: common.StringPtr(getBinaryChecksum()),
8383
}, gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(nil)
8484

85-
res, err := poller.RespondTaskCompleted(nil, assert.AnError, &s.PollForDecisionTaskResponse{
85+
res, err := poller.RespondTaskCompletedWithMetrics(nil, assert.AnError, &s.PollForDecisionTaskResponse{
8686
TaskToken: testTaskToken,
8787
Attempt: common.Int64Ptr(0),
8888
}, time.Now())
@@ -111,7 +111,7 @@ func TestRespondTaskCompleted_failed(t *testing.T) {
111111
t.Run("fail skips sending for not the first attempt", func(t *testing.T) {
112112
poller, _, _, _ := buildWorkflowTaskPoller(t)
113113

114-
res, err := poller.RespondTaskCompleted(nil, assert.AnError, &s.PollForDecisionTaskResponse{
114+
res, err := poller.RespondTaskCompletedWithMetrics(nil, assert.AnError, &s.PollForDecisionTaskResponse{
115115
Attempt: common.Int64Ptr(1),
116116
}, time.Now())
117117
assert.NoError(t, err)
@@ -122,8 +122,8 @@ func TestRespondTaskCompleted_failed(t *testing.T) {
122122
func TestRespondTaskCompleted_Unsupported(t *testing.T) {
123123
poller, _, _, _ := buildWorkflowTaskPoller(t)
124124

125-
assert.Panics(t, func() {
126-
_, _ = poller.RespondTaskCompleted(assert.AnError, nil, &s.PollForDecisionTaskResponse{}, time.Now())
125+
assert.PanicsWithValue(t, "unknown request type from ProcessWorkflowTask()", func() {
126+
_, _ = poller.RespondTaskCompletedWithMetrics(assert.AnError, nil, &s.PollForDecisionTaskResponse{}, time.Now())
127127
})
128128
}
129129

@@ -139,7 +139,7 @@ func TestProcessTask_failures(t *testing.T) {
139139
})
140140
t.Run("unsupported task type", func(t *testing.T) {
141141
poller, _, _, _ := buildWorkflowTaskPoller(t)
142-
assert.Panics(t, func() {
142+
assert.PanicsWithValue(t, "unknown task type.", func() {
143143
_ = poller.ProcessTask(10)
144144
})
145145
})

0 commit comments

Comments
 (0)