Lightning.Retry (Lightning v2.14.5-pre1)

View Source

Retry helpers with exponential backoff and optional jitter.

Summary

Types

config()

@type config() :: %{
  max_attempts: pos_integer(),
  initial_delay_ms: non_neg_integer(),
  max_delay_ms: non_neg_integer(),
  backoff_factor: float(),
  timeout_ms: non_neg_integer(),
  retry_on: (any() -> boolean()),
  context: map(),
  jitter: boolean()
}

retry_option()

@type retry_option() ::
  {:max_attempts, pos_integer()}
  | {:initial_delay_ms, non_neg_integer()}
  | {:max_delay_ms, non_neg_integer()}
  | {:backoff_factor, number()}
  | {:timeout_ms, non_neg_integer()}
  | {:retry_on, (any() -> boolean())}
  | {:context, map()}
  | {:jitter, boolean()}

retry_result()

@type retry_result() :: {:ok, any()} | {:error, term()}

Functions

retriable_error?(arg1)

@spec retriable_error?(term()) :: boolean()

with_retry(fun, opts \\ [])

@spec with_retry((-> retry_result()), [retry_option()]) :: retry_result()

with_webhook_retry(fun, opts \\ [])

@spec with_webhook_retry((-> retry_result()), [retry_option()]) :: retry_result()