[API reference](https://evolu.dev/docs/api-reference) › [@evolu/common](https://evolu.dev/docs/api-reference/common) › [Task](https://evolu.dev/docs/api-reference/common/Task) › RepeatOptions

Defined in: [packages/common/src/Task.ts:4050](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Task.ts#L4050)

Options for [repeat](https://evolu.dev/docs/api-reference/common/Task/functions/repeat).

## Properties

<a id="onrepeat"></a>

### onRepeat?

```ts
readonly optional onRepeat?: (attempt: RepeatAttempt<T, Output>) => void;
```

Defined in: [packages/common/src/Task.ts:4068](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Task.ts#L4068)

Runs before each scheduled repeat.

`attempt` is the completed attempt that caused this repeat, not the
upcoming attempt number. The callback runs after
[RepeatOptions.shouldRepeat](https://evolu.dev/docs/api-reference/common/Task/interfaces/RepeatOptions#shouldrepeat) and the [Schedule](https://evolu.dev/docs/api-reference/common/Schedule/type-aliases/Schedule) approve a repeat,
and before the repeat delay. The callback must not throw: a thrown
exception is a defect that panics the [Run](https://evolu.dev/docs/api-reference/common/Task/interfaces/Run) tree.

### shouldRepeat?

```ts
readonly optional shouldRepeat?: Predicate<T>;
```

Defined in: [packages/common/src/Task.ts:4057](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Task.ts#L4057)

Decides whether an [Ok](https://evolu.dev/docs/api-reference/common/Result/interfaces/Ok) value should schedule another repeat.

The predicate must not throw: a thrown exception is a defect that panics
the [Run](https://evolu.dev/docs/api-reference/common/Task/interfaces/Run) tree.