Nick: max retries with axios-retry

This commit is contained in:
Nicolas 2024-09-27 12:58:57 -04:00
parent 92961cf74f
commit 975f0575b4
4 changed files with 25 additions and 7 deletions

View File

@ -67,6 +67,7 @@
"async": "^3.2.5", "async": "^3.2.5",
"async-mutex": "^0.5.0", "async-mutex": "^0.5.0",
"axios": "^1.3.4", "axios": "^1.3.4",
"axios-retry": "^4.5.0",
"bottleneck": "^2.19.5", "bottleneck": "^2.19.5",
"bullmq": "^5.11.0", "bullmq": "^5.11.0",
"cacheable-lookup": "^6.1.0", "cacheable-lookup": "^6.1.0",

View File

@ -65,6 +65,9 @@ importers:
axios: axios:
specifier: ^1.3.4 specifier: ^1.3.4
version: 1.7.2 version: 1.7.2
axios-retry:
specifier: ^4.5.0
version: 4.5.0(axios@1.7.2)
bottleneck: bottleneck:
specifier: ^2.19.5 specifier: ^2.19.5
version: 2.19.5 version: 2.19.5
@ -1903,6 +1906,11 @@ packages:
axios-retry@3.9.1: axios-retry@3.9.1:
resolution: {integrity: sha512-8PJDLJv7qTTMMwdnbMvrLYuvB47M81wRtxQmEdV5w4rgbTXTt+vtPkXwajOfOdSyv/wZICJOC+/UhXH4aQ/R+w==} resolution: {integrity: sha512-8PJDLJv7qTTMMwdnbMvrLYuvB47M81wRtxQmEdV5w4rgbTXTt+vtPkXwajOfOdSyv/wZICJOC+/UhXH4aQ/R+w==}
axios-retry@4.5.0:
resolution: {integrity: sha512-aR99oXhpEDGo0UuAlYcn2iGRds30k366Zfa05XWScR9QaQD4JYiP3/1Qt1u7YlefUOK+cn0CcwoL1oefavQUlQ==}
peerDependencies:
axios: 0.x || 1.x
axios@0.26.1: axios@0.26.1:
resolution: {integrity: sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==} resolution: {integrity: sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==}
@ -4518,8 +4526,8 @@ packages:
engines: {node: '>=14.17'} engines: {node: '>=14.17'}
hasBin: true hasBin: true
typescript@5.5.4: typescript@5.6.2:
resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} resolution: {integrity: sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==}
engines: {node: '>=14.17'} engines: {node: '>=14.17'}
hasBin: true hasBin: true
@ -6950,6 +6958,11 @@ snapshots:
'@babel/runtime': 7.24.6 '@babel/runtime': 7.24.6
is-retry-allowed: 2.2.0 is-retry-allowed: 2.2.0
axios-retry@4.5.0(axios@1.7.2):
dependencies:
axios: 1.7.2
is-retry-allowed: 2.2.0
axios@0.26.1: axios@0.26.1:
dependencies: dependencies:
follow-redirects: 1.15.6 follow-redirects: 1.15.6
@ -9195,7 +9208,7 @@ snapshots:
csv-parse: 5.5.6 csv-parse: 5.5.6
gpt3-tokenizer: 1.1.5 gpt3-tokenizer: 1.1.5
openai: 3.3.0 openai: 3.3.0
typescript: 5.5.4 typescript: 5.6.2
uuid: 9.0.1 uuid: 9.0.1
zod: 3.23.8 zod: 3.23.8
transitivePeerDependencies: transitivePeerDependencies:
@ -9793,7 +9806,7 @@ snapshots:
typescript@5.4.5: {} typescript@5.4.5: {}
typescript@5.5.4: {} typescript@5.6.2: {}
typesense@1.8.2(@babel/runtime@7.24.6): typesense@1.8.2(@babel/runtime@7.24.6):
dependencies: dependencies:

View File

@ -6,7 +6,11 @@ import { fetchAndProcessPdf } from "../utils/pdfProcessor";
import { universalTimeout } from "../global"; import { universalTimeout } from "../global";
import { Logger } from "../../../lib/logger"; import { Logger } from "../../../lib/logger";
import * as Sentry from "@sentry/node"; import * as Sentry from "@sentry/node";
import axiosRetry from 'axios-retry';
axiosRetry(axios, { retries: 3 , onRetry:()=>{
console.log("Retrying (fire-engine)...");
}, retryDelay: axiosRetry.exponentialDelay});
/** /**
* Scrapes a URL with Fire-Engine * Scrapes a URL with Fire-Engine
* @param url The URL to scrape * @param url The URL to scrape
@ -203,10 +207,10 @@ export async function scrapWithFireEngine({
} }
} catch (error) { } catch (error) {
if (error.code === "ECONNABORTED") { if (error.code === "ECONNABORTED") {
Logger.debug(`⛏️ Fire-Engine: Request timed out for ${url}`); Logger.debug(`⛏️ Fire-Engine (catch block): Request timed out for ${url}`);
logParams.error_message = "Request timed out"; logParams.error_message = "Request timed out";
} else { } else {
Logger.debug(`⛏️ Fire-Engine: Failed to fetch url: ${url} | Error: ${error}`); Logger.debug(`⛏️ Fire-Engine(catch block): Failed to fetch url: ${url} | Error: ${error}`);
logParams.error_message = error.message || error; logParams.error_message = error.message || error;
} }
return { html: "", pageStatusCode: null, pageError: logParams.error_message }; return { html: "", pageStatusCode: null, pageError: logParams.error_message };

View File

@ -424,7 +424,7 @@ export async function scrapSingleUrl(
Logger.debug(`⛏️ ${scraper}: Successfully scraped ${urlToScrap} with text length >= 100 or screenshot, breaking`); Logger.debug(`⛏️ ${scraper}: Successfully scraped ${urlToScrap} with text length >= 100 or screenshot, breaking`);
break; break;
} }
if (pageStatusCode && (pageStatusCode == 404 || pageStatusCode == 500)) { if (pageStatusCode && (pageStatusCode == 404)) {
Logger.debug(`⛏️ ${scraper}: Successfully scraped ${urlToScrap} with status code 404, breaking`); Logger.debug(`⛏️ ${scraper}: Successfully scraped ${urlToScrap} with status code 404, breaking`);
break; break;
} }