# RetryStrategy

Define how Jobs using this JobDefinition respond to different exit conditions.

- Source: [`aws-batch/lib/job-definition-base.ts`](https://github.com/aws/aws-cdk/blob/v2.274.0/packages/aws-cdk-lib/aws-batch/lib/job-definition-base.ts#L146)
- Type last changed: v2.96.0 · 13 Sep 2023

## Example

```ts
const jobDefn = new batch.EcsJobDefinition(this, 'JobDefn', {
   container: new batch.EcsEc2ContainerDefinition(this, 'containerDefn', {
    image: ecs.ContainerImage.fromRegistry('public.ecr.aws/amazonlinux/amazonlinux:latest'),
    memory: cdk.Size.mebibytes(2048),
    cpu: 256,
  }),
  retryAttempts: 5,
  retryStrategies: [
    batch.RetryStrategy.of(batch.Action.EXIT, batch.Reason.CANNOT_PULL_CONTAINER),
  ],
});
jobDefn.addRetryStrategy(
  batch.RetryStrategy.of(batch.Action.EXIT, batch.Reason.SPOT_INSTANCE_RECLAIMED),
);
jobDefn.addRetryStrategy(
  batch.RetryStrategy.of(batch.Action.EXIT, batch.Reason.CANNOT_PULL_CONTAINER),
);
jobDefn.addRetryStrategy(
  batch.RetryStrategy.of(batch.Action.EXIT, batch.Reason.custom({
    onExitCode: '40*',
    onReason: 'some reason',
  })),
);
```

## Initializer

```ts
new RetryStrategy(action: Action, on: Reason)
```

## Properties

- `action`: [Action](/cdk/api/v2/docs/aws-cdk-lib.aws_batch.Action.html) (required) — The action to take when the job exits with the Reason specified.

- `on`: [Reason](/cdk/api/v2/docs/aws-cdk-lib.aws_batch.Reason.html) (required) — If the job exits with this Reason it will trigger the specified Action.

## Methods

- `of(action: Action, on: Reason): RetryStrategy // chainable` (static) — Create a new RetryStrategy.
