@mangar2/retry

1.1.1 • Public • Published

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

Readme

Keywords

Package Sidebar

Install

npm i @mangar2/retry

Weekly Downloads

0

Version

1.1.1

License

LGPL-3.0-or-later

Unpacked Size

12.8 kB

Total Files

5

Last publish

Collaborators

  • mangar2