Merge pull request #232 from furality/spr/main/2346ea7d
feat: log retries
This commit is contained in:
commit
a2fa2930fe
1 changed files with 19 additions and 1 deletions
|
@ -1,5 +1,5 @@
|
||||||
import type { DynamicModule, Provider } from '@nestjs/common';
|
import type { DynamicModule, Provider } from '@nestjs/common';
|
||||||
import { Module } from '@nestjs/common';
|
import { Logger, Module } from '@nestjs/common';
|
||||||
import { randomStringGenerator } from '@nestjs/common/utils/random-string-generator.util';
|
import { randomStringGenerator } from '@nestjs/common/utils/random-string-generator.util';
|
||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
import axiosRetry, { exponentialDelay } from 'axios-retry';
|
import axiosRetry, { exponentialDelay } from 'axios-retry';
|
||||||
|
@ -13,10 +13,28 @@ import type {
|
||||||
} from './interfaces';
|
} from './interfaces';
|
||||||
|
|
||||||
const createAxiosInstance = (config?: HttpModuleOptions) => {
|
const createAxiosInstance = (config?: HttpModuleOptions) => {
|
||||||
|
const logger = new Logger(HttpService.name);
|
||||||
const axiosInstance = axios.create(config);
|
const axiosInstance = axios.create(config);
|
||||||
axiosRetry(axiosInstance, {
|
axiosRetry(axiosInstance, {
|
||||||
// Default exponential backoff
|
// Default exponential backoff
|
||||||
retryDelay: exponentialDelay,
|
retryDelay: exponentialDelay,
|
||||||
|
onRetry(retryCount, error, requestConfig) {
|
||||||
|
logger.warn(
|
||||||
|
{
|
||||||
|
retryCount,
|
||||||
|
name: error.name,
|
||||||
|
message: error.message,
|
||||||
|
code: error.code,
|
||||||
|
method: requestConfig.method,
|
||||||
|
baseURL: requestConfig.baseURL,
|
||||||
|
url: requestConfig.url,
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
||||||
|
params: requestConfig.params,
|
||||||
|
data: error.response?.data,
|
||||||
|
},
|
||||||
|
'Retrying request after error',
|
||||||
|
);
|
||||||
|
},
|
||||||
...config,
|
...config,
|
||||||
});
|
});
|
||||||
return axiosInstance;
|
return axiosInstance;
|
||||||
|
|
Loading…
Reference in a new issue