Update check-fire-engine.ts

This commit is contained in:
Nicolas 2025-01-18 23:53:33 -03:00
parent 4e8e58729a
commit 24ddcd4a6d

View File

@ -15,44 +15,54 @@ export async function checkFireEngine(req: Request, res: Response) {
const controller = new AbortController(); const controller = new AbortController();
const timeout = setTimeout(() => controller.abort(), 30000); const timeout = setTimeout(() => controller.abort(), 30000);
try { const urls = ["https://roastmywebsite.ai", "https://example.com"];
const response = await fetch( let lastError : string | null = null;
`${process.env.FIRE_ENGINE_BETA_URL}/scrape`,
{ for (const url of urls) {
method: "POST", try {
headers: { const response = await fetch(
"Content-Type": "application/json", `${process.env.FIRE_ENGINE_BETA_URL}/scrape`,
"X-Disable-Cache": "true", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-Disable-Cache": "true",
},
body: JSON.stringify({
url,
}),
signal: controller.signal,
}, },
body: JSON.stringify({ );
url: "https://roastmywebsite.ai",
}),
signal: controller.signal,
},
);
clearTimeout(timeout); clearTimeout(timeout);
if (response.ok) { if (response.ok) {
const responseData = await response.json(); const responseData = await response.json();
return res.status(200).json({ return res.status(200).json({
data: responseData, data: responseData,
}); });
} else { }
return res.status(response.status).json({ lastError = `Fire engine returned status ${response.status}`;
success: false, } catch (error) {
error: `Fire engine returned status ${response.status}`, if (error.name === "AbortError") {
}); return res.status(504).json({
success: false,
error: "Request timed out after 30 seconds",
});
}
lastError = error;
} }
} catch (error) {
if (error.name === "AbortError") {
return res.status(504).json({
success: false,
error: "Request timed out after 30 seconds",
});
}
throw error;
} }
// If we get here, all retries failed
logger.error(lastError);
Sentry.captureException(lastError);
return res.status(500).json({
success: false,
error: "Internal server error - all retry attempts failed",
});
} catch (error) { } catch (error) {
logger.error(error); logger.error(error);
Sentry.captureException(error); Sentry.captureException(error);