From 6d92b8524d19a900de2a3145ac6a8c0aa19a77f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gerg=C5=91=20M=C3=B3ricz?= Date: Thu, 22 Aug 2024 16:00:13 +0200 Subject: [PATCH] feat(scrape): record job result in span --- apps/api/src/controllers/scrape.ts | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/apps/api/src/controllers/scrape.ts b/apps/api/src/controllers/scrape.ts index 959cc546..b0004276 100644 --- a/apps/api/src/controllers/scrape.ts +++ b/apps/api/src/controllers/scrape.ts @@ -49,18 +49,28 @@ export async function scrapeHelper( }, {}, jobId); let doc; - try { - doc = (await job.waitUntilFinished(scrapeQueueEvents, timeout))[0]; //60 seconds timeout - } catch (e) { - if (e instanceof Error && e.message.startsWith("Job wait")) { - return { - success: false, - error: "Request timed out", - returnCode: 408, + + const err = await Sentry.startSpanManual({ name: "Wait for job to finish", op: "bullmq.wait", attributes: { job: jobId } }, async (span) => { + try { + doc = (await job.waitUntilFinished(scrapeQueueEvents, timeout))[0] + } catch (e) { + if (e instanceof Error && e.message.startsWith("Job wait")) { + span.setAttribute("timedOut", true).end(); + return { + success: false, + error: "Request timed out", + returnCode: 408, + } + } else { + throw e; } - } else { - throw e; } + span.setAttribute("result", JSON.stringify(doc)).end(); + return null; + }); + + if (err !== null) { + return err; } await job.remove();