feat: add job queue

This commit is contained in:
Ephraim Atta-Duncan
2024-04-07 18:30:16 +00:00
parent fc70f78e61
commit 53abb8f00b
7 changed files with 315 additions and 4 deletions

View File

@ -0,0 +1,34 @@
import type { WorkHandler } from 'pg-boss';
import { initQueue } from '.';
import {
type SendDocumentOptions as SendCompletedDocumentOptions,
sendCompletedEmail,
} from '../document/send-completed-email';
type JobOptions = {
'send-completed-email': SendCompletedDocumentOptions;
};
export const jobHandlers: {
[K in keyof JobOptions]: WorkHandler<JobOptions[K]>;
} = {
'send-completed-email': async ({ data }) => {
await sendCompletedEmail({
documentId: data.documentId,
requestMetadata: data.requestMetadata,
});
},
};
export const queueJob = async ({
job,
args,
}: {
job: keyof JobOptions;
args?: JobOptions[keyof JobOptions];
}) => {
const queue = await initQueue();
await queue.send(job, args ?? {});
};