diff --git a/packages/api/src/jobs/create_digest.ts b/packages/api/src/jobs/create_digest.ts index e17fd26b4..fd5b1d842 100644 --- a/packages/api/src/jobs/create_digest.ts +++ b/packages/api/src/jobs/create_digest.ts @@ -32,6 +32,9 @@ export const processCreateDigestJob = async (data: CreateDigestJobData) => { // save digest to redis await setDigest(data.userId, digest) + // simulate long running task + await new Promise((resolve) => setTimeout(resolve, 5000)) + logger.info('digest created', digest) return true diff --git a/packages/api/src/routers/digest_router.ts b/packages/api/src/routers/digest_router.ts index 24102de3b..f495dc87e 100644 --- a/packages/api/src/routers/digest_router.ts +++ b/packages/api/src/routers/digest_router.ts @@ -62,7 +62,7 @@ export function digestRouter() { // check if job is already in queue // if yes then return 409 conflict // else enqueue job - const jobId = createJobId(userId, CREATE_DIGEST_JOB) + const jobId = createJobId(CREATE_DIGEST_JOB, userId) const existingJob = await getJob(jobId) if (existingJob) { logger.info(`Job already in queue: ${jobId}`) @@ -110,7 +110,7 @@ export function digestRouter() { } // get job by user id - const jobId = createJobId(userId, CREATE_DIGEST_JOB) + const jobId = createJobId(CREATE_DIGEST_JOB, userId) const job = await getJob(jobId) if (job) { // if job is in queue then return job state diff --git a/packages/api/src/services/digest.ts b/packages/api/src/services/digest.ts index 46343a8ce..8a6160ecc 100644 --- a/packages/api/src/services/digest.ts +++ b/packages/api/src/services/digest.ts @@ -22,7 +22,9 @@ export const getDigest = async (userId: string): Promise => { export const setDigest = async (userId: string, digest: Digest) => { const result = await redisDataSource.redisClient?.set( digestKey(userId), - JSON.stringify(digest) + JSON.stringify(digest), + 'EX', + 60 * 60 * 24 // 1 day ) if (result != 'OK') {