Skip to content

Commit 0d104c4

Browse files
committed
Notify retrying failed requests
1 parent 20d666d commit 0d104c4

File tree

1 file changed

+16
-4
lines changed

1 file changed

+16
-4
lines changed

src/botPage/bot/tools.js

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1+
import { observer as globalObserver } from 'binary-common-utils/lib/observer'
12
import { getUTCTime } from 'binary-common-utils/lib/tools'
3+
import { translate } from '../../common/i18n'
24

35
export const noop = () => {}
46

@@ -55,9 +57,17 @@ export const registerStream = (observer, name, cb) => {
5557

5658
const maxRetries = 10
5759

58-
export const getBackoffDelay = (errorCode, delayIndex) => {
60+
const notifyRetry = (msg, error, delay) => globalObserver.emit('Notify', [
61+
`${msg}: ${error.error.msg_type}, ${translate('retrying in')} ${delay}s`,
62+
'error',
63+
'right',
64+
])
65+
66+
const getBackoffDelay = (error, delayIndex) => {
5967
const offset = 0.5 // 500ms
6068

69+
const errorCode = error && error.name
70+
6171
if (errorCode === 'DisconnectError') {
6272
return offset * 1000
6373
}
@@ -66,12 +76,14 @@ export const getBackoffDelay = (errorCode, delayIndex) => {
6676
const exponentialIncrease = (2 ** delayIndex) + offset
6777

6878
if (errorCode === 'RateLimit' || delayIndex < maxExpTries) {
79+
notifyRetry(translate('Rate limit reached for'), error, exponentialIncrease)
6980
return exponentialIncrease * 1000
7081
}
7182

72-
const linearIncrease = (maxExpTries - delayIndex) + 1
83+
const linearIncrease = exponentialIncrease + ((maxExpTries - delayIndex) + 1)
7384

74-
return (exponentialIncrease + linearIncrease) * 1000
85+
notifyRetry(translate('Request failed for'), error, linearIncrease)
86+
return linearIncrease * 1000
7587
}
7688

7789
export const shouldThrowError = (e, types = [], delayIndex = 0) => e &&
@@ -93,7 +105,7 @@ export const recoverFromError = (f, r, types, delayIndex) => new Promise((resolv
93105
}
94106

95107
r(e.name, () => new Promise(delayPromise =>
96-
setTimeout(delayPromise, getBackoffDelay(e && e.name, delayIndex))))
108+
setTimeout(delayPromise, getBackoffDelay(e, delayIndex))))
97109
})
98110
})
99111

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy