Backoff policies
The @daiso-tech/core/backoff-policies component
Predefined backoff policies
The library includes predefined backoff policies:
constantBackoff- Constant backoff policy with jitter
import { TimeSpan } from "@daiso-tech/core/time-span"
import { constantBackoff } from "@daiso-tech/core/backoff-policies"
// The settings argument is optional and all its fields are optional
const backoff = constantBackoff({
delay: TimeSpan.fromSeconds(1),
jitter: 0.5 // You can pass null to disable jitter
})
exponentialBackoff- Exponential backoff policy with jitter
import { TimeSpan } from "@daiso-tech/core/time-span"
import { exponentialBackoff } from "@daiso-tech/core/backoff-policies"
// The settings argument is optional and all its fields are optional
const backoff = exponentialBackoff({
maxDelay: TimeSpan.fromSeconds(60),
minDelay: TimeSpan.fromSeconds(1),
multiplier: 2,
jitter: 0.5 // You can pass null to disable jitter
})
linearBackoff- Linear backoff policy with jitter
import { TimeSpan } from "@daiso-tech/core/time-span"
import { linearBackoff } from "@daiso-tech/core/backoff-policies"
// The settings argument is optional and all its fields are optional
const backoff = linearBackoff({
maxDelay: TimeSpan.fromSeconds(6),
minDelay: TimeSpan.fromSeconds(1),
jitter: 0.5 // You can pass null to disable jitter
})
polynomialBackoff- Polynomial backoff policy with jitter
import { TimeSpan } from "@daiso-tech/core/time-span"
import { linearBackoff } from "@daiso-tech/core/backoff-policies"
// The settings argument is optional and all its fields are optional
const backoff = linearBackoff({
maxDelay: TimeSpan.fromSeconds(60),
minDelay: TimeSpan.fromSeconds(1),
degree: 2,
jitter: 0.5 // You can pass null to disable jitter
})
Further information
For further information refer to @daiso-tech/core/backoff-policies API docs.