17
17
18
18
package com .uber .cadence .internal .worker ;
19
19
20
- import com .uber .cadence .PollForActivityTaskResponse ;
21
- import com .uber .cadence .RespondActivityTaskCanceledRequest ;
22
- import com .uber .cadence .RespondActivityTaskCompletedRequest ;
23
- import com .uber .cadence .RespondActivityTaskFailedRequest ;
24
- import com .uber .cadence .WorkflowExecution ;
20
+ import com .uber .cadence .*;
25
21
import com .uber .cadence .common .RetryOptions ;
26
22
import com .uber .cadence .internal .common .Retryer ;
27
23
import com .uber .cadence .internal .logging .LoggerTag ;
@@ -224,15 +220,27 @@ private void sendReply(PollForActivityTaskResponse task, ActivityTaskHandler.Res
224
220
RetryOptions ro = response .getRequestRetryOptions ();
225
221
RespondActivityTaskCompletedRequest taskCompleted = response .getTaskCompleted ();
226
222
if (taskCompleted != null ) {
227
- ro = options .getReportCompletionRetryOptions ().merge (ro );
223
+ ro =
224
+ options
225
+ .getReportCompletionRetryOptions ()
226
+ .merge (ro )
227
+ .addDoNotRetry (
228
+ BadRequestError .class , EntityNotExistsError .class , DomainNotActiveError .class );
228
229
taskCompleted .setTaskToken (task .getTaskToken ());
229
230
taskCompleted .setIdentity (options .getIdentity ());
230
231
Retryer .retry (ro , () -> service .RespondActivityTaskCompleted (taskCompleted ));
231
232
options .getMetricsScope ().counter (MetricsType .ACTIVITY_TASK_COMPLETED_COUNTER ).inc (1 );
232
233
} else {
233
234
RespondActivityTaskFailedRequest taskFailed = response .getTaskFailed ();
234
235
if (taskFailed != null ) {
235
- ro = options .getReportFailureRetryOptions ().merge (ro );
236
+ ro =
237
+ options
238
+ .getReportFailureRetryOptions ()
239
+ .merge (ro )
240
+ .addDoNotRetry (
241
+ BadRequestError .class ,
242
+ EntityNotExistsError .class ,
243
+ DomainNotActiveError .class );
236
244
taskFailed .setTaskToken (task .getTaskToken ());
237
245
taskFailed .setIdentity (options .getIdentity ());
238
246
Retryer .retry (ro , () -> service .RespondActivityTaskFailed (taskFailed ));
@@ -242,7 +250,14 @@ private void sendReply(PollForActivityTaskResponse task, ActivityTaskHandler.Res
242
250
if (taskCancelled != null ) {
243
251
taskCancelled .setTaskToken (task .getTaskToken ());
244
252
taskCancelled .setIdentity (options .getIdentity ());
245
- ro = options .getReportFailureRetryOptions ().merge (ro );
253
+ ro =
254
+ options
255
+ .getReportFailureRetryOptions ()
256
+ .merge (ro )
257
+ .addDoNotRetry (
258
+ BadRequestError .class ,
259
+ EntityNotExistsError .class ,
260
+ DomainNotActiveError .class );
246
261
Retryer .retry (ro , () -> service .RespondActivityTaskCanceled (taskCancelled ));
247
262
options .getMetricsScope ().counter (MetricsType .ACTIVITY_TASK_CANCELED_COUNTER ).inc (1 );
248
263
}
0 commit comments