mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-23 19:49:50 +02:00
feat: more retry erros
This commit is contained in:
1 parent
3640c16384
commit
9f2a40e73c
1 file changed
+6
-4
@@ -3,7 +3,9 @@ import { WARGAMING_APPLICATION_ID } from '../../constants/wargamingApplicationID
|
|||||||
import { EventManager } from '../blitzkit/eventManager';
|
import { EventManager } from '../blitzkit/eventManager';
|
||||||
import { patientFetch } from '../blitzkit/patientFetch';
|
import { patientFetch } from '../blitzkit/patientFetch';
|
||||||
|
|
||||||
export const requestLimitExceededEvent = new EventManager();
|
const RETRY_ERRORS = ['REQUEST_LIMIT_EXCEEDED', 'SOURCE_NOT_AVAILABLE'];
|
||||||
|
|
||||||
|
export const retryAbleBlitzFetchEvent = new EventManager();
|
||||||
|
|
||||||
type BlitzResponse<Data extends object> =
|
type BlitzResponse<Data extends object> =
|
||||||
| {
|
| {
|
||||||
@@ -39,12 +41,12 @@ async function manageQueue() {
|
|||||||
if (data.status === 'ok') {
|
if (data.status === 'ok') {
|
||||||
request.resolve(data.data);
|
request.resolve(data.data);
|
||||||
} else {
|
} else {
|
||||||
if (data.error.message === 'REQUEST_LIMIT_EXCEEDED') {
|
if (RETRY_ERRORS.includes(data.error.message)) {
|
||||||
console.log(
|
console.log(
|
||||||
`Rate limit exceeded, putting "${request.url}" back in queue...`,
|
`Encountered retry-able error ${data.error}, putting "${request.url}" back in queue...`,
|
||||||
);
|
);
|
||||||
|
|
||||||
requestLimitExceededEvent.emit(undefined);
|
retryAbleBlitzFetchEvent.emit(undefined);
|
||||||
clearTimeout(timeout);
|
clearTimeout(timeout);
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
queue.push(request);
|
queue.push(request);
|
||||||
|
|||||||
Reference in new issue
Block a user