TP-87084 | Exponential delay for retry API calls

This commit is contained in:
yashmantri
2024-10-03 23:57:02 +05:30
parent 89985a9fdb
commit 77cca0abb9

View File

@@ -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));
}
);