Progressivly increase delayTime for multiple stored updates

This commit is contained in:
Stuart Taylor
2018-07-27 20:52:00 +01:00
committed by Mrugesh Mohapatra
parent ca70573bd8
commit 03abb0facc

View File

@ -41,10 +41,19 @@ function failedUpdateEpic(action$, { getState }) {
filter(() => isOnlineSelector(getState())), filter(() => isOnlineSelector(getState())),
tap(() => { tap(() => {
const failures = store.get(key) || []; const failures = store.get(key) || [];
let delayTime = 0; let delayTime = 100;
const batch = failures.map(update => { const batch = failures.map((update, i) => {
delayTime += 300;
// we stagger the updates here so we don't hammer the server // we stagger the updates here so we don't hammer the server
// *********************************************************
// progressivly increase additional delay by the amount of updates
// 1st: 100ms delay
// 2nd: 200ms delay
// 3rd: 400ms delay
// 4th: 700ms delay
// 5th: 1100ms delay
// 6th: 1600ms delay
// and so-on
delayTime += 100 * i;
return delay(delayTime, () => return delay(delayTime, () =>
postUpdate$(update) postUpdate$(update)
.pipe( .pipe(