@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 |