• Jump To … +
    index.js backoff.js function_call.js exponential.js fibonacci.js strategy.js
  • fibonacci.js

  • ¶
     Copyright (c) 2012 Mathieu Turcotte
     Licensed under the MIT license.
    
    var util = require('util');
    
    var BackoffStrategy = require('./strategy');
  • ¶

    Fibonacci backoff strategy.

    function FibonacciBackoffStrategy(options) {
        BackoffStrategy.call(this, options);
        this.backoffDelay_ = 0;
        this.nextBackoffDelay_ = this.getInitialDelay();
    }
    util.inherits(FibonacciBackoffStrategy, BackoffStrategy);
    
    FibonacciBackoffStrategy.prototype.next_ = function() {
        var backoffDelay = Math.min(this.nextBackoffDelay_, this.getMaxDelay());
        this.nextBackoffDelay_ += this.backoffDelay_;
        this.backoffDelay_ = backoffDelay;
        return backoffDelay;
    };
    
    FibonacciBackoffStrategy.prototype.reset_ = function() {
        this.nextBackoffDelay_ = this.getInitialDelay();
        this.backoffDelay_ = 0;
    };
    
    module.exports = FibonacciBackoffStrategy;