TP-87084 | Exponential delay for retry API calls
This commit is contained in:
@@ -246,15 +246,15 @@ const errorsToRetry = [500, 503];
|
||||
const axiosInstance = axios.create({ timeout: API_TIMEOUT_INTERVAL });
|
||||
|
||||
axiosInstance.interceptors.request.use((request) => {
|
||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||
// @ts-ignore
|
||||
request.retry = request?.retry < 4 ? request.retry : 3;
|
||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||
// @ts-ignore
|
||||
request.headers['X-Auth-Source'] = 'mjolnir';
|
||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||
// @ts-ignore
|
||||
request.retry = request?.retry < 4 ? request.retry : 3;
|
||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||
// @ts-ignore
|
||||
request.delay = request?.delay > 1000 ? request.delay : 1000;
|
||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||
// @ts-ignore
|
||||
request.headers['request-start-time'] = Date.now();
|
||||
@@ -353,8 +353,9 @@ axiosInstance.interceptors.response.use(
|
||||
const delayRetryRequest = new Promise<void>((resolve) => {
|
||||
setTimeout(() => {
|
||||
resolve();
|
||||
}, 500);
|
||||
}, config.delay);
|
||||
});
|
||||
config.delay *= 2;
|
||||
return delayRetryRequest.then(() => axiosInstance(config));
|
||||
}
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user