@mangar2/retry v1.1.1
Abstract
asyncronously retries function calls several times with delay inbetween Prevents parallel retry loops with the same topic .
Contents
Meta
File | retry.js |
Abstract | asyncronously retries function calls several times with delay inbetween Prevents parallel retry loops with the same topic . |
Author | Volker Böhm |
Copyright | Copyright ( c ) 2020 Volker Böhm |
License | This software is licensed under the GNU LESSER GENERAL PUBLIC LICENSE Version 3 . It is furnished "as is" , without any support , and with no warranty , express or implied , as to its usefulness for any purpose . |
Class Retry
new Retry(immediateFirstCall)
Class providing a retry facility calling a callback "count" times asyncronously with a delay inbetween Additionally providing a "topic" based retry ( "topicRetry" ) with the following functionality :
- Asynchronously calles a global callback "count" times with a delay inbetween
- If no global callback is provided , it calls a callback prior registrated to the topic
- If topicRetry is called with a still running existing retry loop for the same topic , this existing is terminated .
Example
const retry = new Retry()
// prints 5 times hello world, with a delay of 1 second between each output
retry.retry(5, 1000, () => console.log("hello world"))
// prints hello1, world, hello2, world, hello2
retry.topicRetry('hello', 2, 1000, () => console.log("hello1"))
retry.topicRetry('world', 2, 1000, () => console.log("world"))
retry.topicRetry('hello', 2, 1000, () => console.log("hello2"))
Retry Parameters
Name | Type | Attribute | Default | Description | |
---|---|---|---|---|---|
immediateFirstCall | boolean | optional | true | true , if the first call should happen immediately |
Retry Methods
on
on (topic, callback)
Registers a callback for a topic
on Parameters
Name | Type | Description | |
---|---|---|---|
topic | string | topic to register a callback | |
callback | function( | called on matching topic on retries |
on throws
Type | Description |
---|---|
Error | if the callback is not 'function' |
retry
async retry (count, delayInMilliseconds, callback) => {Promise}
Calls a callback function multiple times and waits between the calls .
retry Parameters
Name | Type | Description | |
---|---|---|---|
count | number | quantity of retries | |
delayInMilliseconds | number | amount of milliseconds to wait between retries | |
callback | function(loopNumber | function called on each retry |
retry returns
Type | Description |
---|---|
Promise | promise resolving , when all callbacks are done |
stopRetry
stopRetry (topic)
Stops a retry loop
stopRetry Parameters
Name | Type | Description | |
---|---|---|---|
topic | string | name of the retry topic |
topicRetry
async topicRetry (topic, count, delayInMilliseconds, callback) => {Promise}
Calls a callback function multiple times and waits between the calls . If you call "retry" with the same topic a second time , it will stop the running retry loop with the same topic
topicRetry Parameters
Name | Type | Description | |
---|---|---|---|
topic | string | name of the topic to retry | |
count | number | quantity of retries | |
delayInMilliseconds | number | amount of milliseconds to wait between retries | |
callback | function( | function called on each retry |
topicRetry returns
Type | Description |
---|---|
Promise | promise resolving , when all callbacks are done |