ember-backoff
Simple exponential backoff strategy for Ember.js promises
import retryWithBackoff from 'ember-backoff/retry-with-backoff';
export default Em.Route.extend({
model: function(params) {
retryWithBackoff(function() {
return this.store.find('user', 142857);
}, 5, 100);
}
});
Or using one of the supplied strategies
import retryWithBackoff from 'ember-backoff/retry-with-backoff';
import constant from 'ember-backoff/strategy/constant';
export default Em.Route.extend({
model: function(params) {
retryWithBackoff(function() {
return this.store.find('completedJob', 22);
}, 10, 1000, constant);
}
});
Or you own custom strategy
import retryWithBackoff from 'ember-backoff/retry-with-backoff';
import exponential from 'ember-backoff/strategy/exponential';
function exponentialWithDither(initialWait, retryCount) {
var ditherFrac = Math.random() * 10;
return (1 + ditherFrac) * exponential(initialWait, retryCount);
}
export default Em.Route.extend({
model: function(params) {
retryWithBackoff(function() {
return this.store.query('thunderindHerd');
}, 10, 1000, exponentialWithDither);
}
});
Questions? Ping me @gavinjoyce
Installation
npm install ember-backoff --save
Outstanding Tasks
Pull requests are very welcome, thanks.
Development Instructions
git clone
this repositorynpm install
bower install
Running
Running Tests
ember test
ember test --server