1.0.4 • Published 18 days ago
interval-manager v1.0.4
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
- IntervalManager
- new IntervalManager(options)
- .add(callback, [ms])
- .close() ⇒ Promise.<undefined>
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