From 7b940ab965c3d1ce8f529684f44e7531a4f5b5a3 Mon Sep 17 00:00:00 2001 From: Rohit Date: Tue, 11 Mar 2025 21:55:27 +0530 Subject: [PATCH] feat: add support for stop and interpret workflow --- server/src/pgboss-worker.ts | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/server/src/pgboss-worker.ts b/server/src/pgboss-worker.ts index 5d2ea86d..5fd87518 100644 --- a/server/src/pgboss-worker.ts +++ b/server/src/pgboss-worker.ts @@ -16,8 +16,17 @@ interface InitializeBrowserData { userId: string; } +interface InterpretWorkflow { + userId: string; +} + +interface StopInterpretWorkflow { + userId: string; +} + interface DestroyBrowserData { browserId: string; + userId: string; } const pgBoss = new PgBoss({connectionString: pgBossConnectionString, schema: 'public'}); @@ -65,10 +74,10 @@ async function startWorkers() { await pgBoss.work('destroy-browser', async (job: Job | Job[]) => { try { const data = extractJobData(job); - const browserId = data.browserId; + const { browserId, userId } = data; logger.log('info', `Starting browser destruction job for browser: ${browserId}`); - const success = await destroyRemoteBrowser(browserId); + const success = await destroyRemoteBrowser(browserId, userId); logger.log('info', `Browser destruction job completed with result: ${success}`); return { success }; } catch (error: unknown) { @@ -79,10 +88,13 @@ async function startWorkers() { }); // Worker for interpreting workflow - await pgBoss.work('interpret-workflow', async () => { + await pgBoss.work('interpret-workflow', async (job: Job | Job[]) => { try { + const data = extractJobData(job); + const userId = data.userId; + logger.log('info', 'Starting workflow interpretation job'); - await interpretWholeWorkflow(); + await interpretWholeWorkflow(userId); logger.log('info', 'Workflow interpretation job completed'); return { success: true }; } catch (error: unknown) { @@ -93,10 +105,13 @@ async function startWorkers() { }); // Worker for stopping workflow interpretation - await pgBoss.work('stop-interpretation', async () => { + await pgBoss.work('stop-interpretation', async (job: Job | Job[]) => { try { + const data = extractJobData(job); + const userId = data.userId; + logger.log('info', 'Starting stop interpretation job'); - await stopRunningInterpretation(); + await stopRunningInterpretation(userId); logger.log('info', 'Stop interpretation job completed'); return { success: true }; } catch (error: unknown) {