Nacho Portion Monitor

    rerun

    1.2.2 • Public • Published

    rerun Build Status

    A retry library for node.js.
    Rerun supports promises and request.js, as you will see, the API is pretty simple.

    The options and their defaults for rerun library are:

    {
      retries: 3
      retryTimeout: 50
      retryFactor: 1
    }
    • retries - How many times to retry before failing.
    • retryTimeout - The initial time to wait (in milliseconds) before each retry.
    • retryFactor - The multiplier after each fail to multiply retryTimeout with.

    Request

    Rerun use with request is the same as with request itself, but with promises.

      var request = require('rerun').request;
      var promise = request({method:'POST', url: 'http://localhost/test', retries: 2, retryTimeout: 10, retryFactor: 2});

    Promise

    Rerun with promises is easy too, all you need is to call the library with the function you want to retry, and if it fails, the library will try again.
    Notice that if you don't want the library to retry, you can throw require('rerun').RejectError.

      var retry = require('rerun').promise;
      var promise = retry(function () { doSomething(); }, { retries: 2, retryTimeout: 10, retryFactor: 2 });

    Object Proxy

    Want to proxy all methods of an object with rerun functionality? Piece of cake! To proxy all methods:

      var object = { foo: function() {} }
      var retry = require('rerun').proxy;
      var proxy = retry.all(object, { retries: 2, retryTimeout: 10, retryFactor: 2 })
      var promise = proxy.foo()

    To proxy only some methods:

      var object = { foo: function() {}, bar: function() {}}
      var retry = require('rerun').proxy;
      var proxy = retry.some(object, ['foo'], { retries: 2, retryTimeout: 10, retryFactor: 2 })
      var promise = proxy.foo()

    Notice that proxied functions are expected to return a promise.

    Install

    npm i rerun

    DownloadsWeekly Downloads

    49

    Version

    1.2.2

    License

    none

    Last publish

    Collaborators

    • bigpanda