Lightweight API for setInterval
jobs with handling graceful shutdown.
npm i interval-manager
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)
- .add(callback, [ms])
-
.close() ⇒
Promise.<undefined>
Param | Type | Description |
---|---|---|
options | Object |
|
[options.timeoutMs] | number |
Timeout for .close() method. Default value is 60_000 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. |
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