markkra / backoff-rxjs

A collection of helpful RxJS operators to deal with backoff strategies (like exponential backoff)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

backoff-rxjs

A collection of helpful RxJS operators to deal with backoff strategies (like exponential backoff)

intervalBackoff

Basic interval backoff

intervalBackoff works similiarly to interval except that it doubles the delay between emissions every time.

name type attirbute description
config number | IntervalBackoffConfig required Can take number as initial interval or a config with initial interval, optional max Interval and optional backoff delay function (exponential by default)

interval is especially useful for periodic polls that are reset whenever user activity is detected:

fromEvent(document, 'mousemove').pipe(

    // There could be many mousemoves, we'd want to sample only
    // with certain frequency
    sampleTime(LOAD_INTERVAL_MS),

    // Start immediately
    startWith(null),

    // Resetting exponential interval
    switchMapTo(intervalBackoff({initialInterval: LOAD_INTERVAL_MS, maxInterval: MAX_INTERVAL_MS})),
  );

retryBackoff

Retry Backoff Exponential Image

name type attirbute description
config number | RetryBackoffConfig required Can take number as initial interval or a config with initial interval, optional max Interval, optional max number of retry attempts, optional function to cancel reties and optional backoff delay function (exponential by default)

About

A collection of helpful RxJS operators to deal with backoff strategies (like exponential backoff)

License:MIT License


Languages

Language:TypeScript 100.0%