From cbf0cf76d33d90b73fd3f3ec7a55631010155c52 Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Tue, 5 Nov 2024 17:09:32 +0100 Subject: [PATCH] Use timestamp from runtime --- packages/server/src/automations/utils.ts | 10 +++++++--- packages/types/src/sdk/automations/index.ts | 1 + 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/server/src/automations/utils.ts b/packages/server/src/automations/utils.ts index 62125ea589..365dc36b68 100644 --- a/packages/server/src/automations/utils.ts +++ b/packages/server/src/automations/utils.ts @@ -70,6 +70,10 @@ export async function processEvent(job: AutomationJob) { const task = async () => { try { + if (isCronTrigger(job.data.automation)) { + // Requires the timestamp at run time + job.data.event.timestamp = Date.now() + } // need to actually await these so that an error can be captured properly console.log("automation running", ...loggingArgs(job)) @@ -210,15 +214,15 @@ export async function enableCronTrigger(appId: any, automation: Automation) { } // make a job id rather than letting Bull decide, makes it easier to handle on way out const jobId = `${appId}_cron_${utils.newid()}` - const job: any = await automationQueue.add( + const job = await automationQueue.add( { automation, - event: { appId, timestamp: Date.now() }, + event: { appId }, }, { repeat: { cron: cronExp }, jobId } ) // Assign cron job ID from bull so we can remove it later if the cron trigger is removed - trigger.cronJobId = job.id + trigger.cronJobId = job.id.toString() // can't use getAppDB here as this is likely to be called from dev app, // but this call could be for dev app or prod app, need to just use what // was passed in diff --git a/packages/types/src/sdk/automations/index.ts b/packages/types/src/sdk/automations/index.ts index 9ceded03ee..ba79d47021 100644 --- a/packages/types/src/sdk/automations/index.ts +++ b/packages/types/src/sdk/automations/index.ts @@ -14,6 +14,7 @@ export interface AutomationDataEvent { row?: Row oldRow?: Row user?: UserBindings + timestamp?: number } export interface AutomationData {