1.0.4 • Published 18 days ago

interval-manager v1.0.4

Weekly downloads
-
License
MIT
Repository
github
Last release
18 days ago

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)

ParamTypeDescription
optionsObject
options.timeoutMsnumberTimeout for .close() method. Default value is 60_000 ms.

intervalManager.add(callback, ms)

Kind: instance method of IntervalManager

ParamTypeDescription
callbackfunction
msnumberSchedules 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
1.0.4

18 days ago

1.0.3

19 days ago

1.0.2

19 days ago

1.0.1

19 days ago

1.0.0

19 days ago