Skip to content

Interval Manager for handling graceful shutdown of `setInterval`

Notifications You must be signed in to change notification settings

bacebu4/interval-manager

Repository files navigation

npm version tests codecov

Interval Manager

Lightweight API for setInterval jobs with handling graceful shutdown.

Installation

npm i interval-manager

Usage

import { IntervalManager } from 'interval-manager';

const intervalManager = new IntervalManager();

// add custom interval
intervalManager.add(() => {
  console.log('Called every second');
}, 1_000);

// somewhere in graceful shutdown handler
// returns a promise which will resolve when no jobs will be running
await intervalManager.close();

IntervalManager

new IntervalManager(options)

Param Type Description
options Object
[options.timeoutMs] number Timeout for .close() method. Default value is 60_000 ms.

intervalManager.add(callback, [ms])

Kind: instance method of IntervalManager

Param Type Description
callback function
[ms] number Schedules and registers repeated execution of callback every ms milliseconds. When delay is larger than 2147483647 or less than 1, the delay will be set to 1. Non-integer delays are truncated to an integer. If callback is not a function, a TypeError will be thrown. If the Interval Manager is in the closing state then doesn't schedule anything.

intervalManager.close() ⇒ Promise.<undefined>

Switcher Interval Manager to closing state and clears all registered intervals.

Returns a promise which will resolve as soon as all interval's callbacks will be executed. Supposed to be called in graceful shutdown handler.

Will reject the promise if timeout is reached.

Kind: instance method of IntervalManager
Throws:

  • Error

About

Interval Manager for handling graceful shutdown of `setInterval`

Resources

Stars

Watchers

Forks

Packages

No packages published