mirror of
https://github.com/documenso/documenso.git
synced 2025-11-13 16:23:06 +10:00
feat: ghetto durable compute
This commit is contained in:
@ -1,23 +1,47 @@
|
||||
import { z } from 'zod';
|
||||
|
||||
import { sendConfirmationToken } from '../../server-only/user/send-confirmation-token';
|
||||
import { jobsClient } from '../client';
|
||||
import type { JobClient } from '../client/client';
|
||||
|
||||
jobsClient.defineJob({
|
||||
id: 'send.confirmation.email',
|
||||
name: 'Send Confirmation Email',
|
||||
version: '1.0.0',
|
||||
trigger: {
|
||||
name: 'send.confirmation.email',
|
||||
schema: z.object({
|
||||
email: z.string().email(),
|
||||
force: z.boolean().optional(),
|
||||
}),
|
||||
},
|
||||
handler: async ({ payload }) => {
|
||||
await sendConfirmationToken({
|
||||
email: payload.email,
|
||||
force: payload.force,
|
||||
});
|
||||
},
|
||||
});
|
||||
export const registerSendConfirmationEmailJob = (client: JobClient) => {
|
||||
client.defineJob({
|
||||
id: 'send.confirmation.email',
|
||||
name: 'Send Confirmation Email',
|
||||
version: '1.0.0',
|
||||
trigger: {
|
||||
name: 'send.confirmation.email',
|
||||
schema: z.object({
|
||||
email: z.string().email(),
|
||||
force: z.boolean().optional(),
|
||||
}),
|
||||
},
|
||||
handler: async ({ payload, io }) => {
|
||||
console.log('---- start job ----');
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/require-await
|
||||
const result = await io.runTask('console-log-1', async () => {
|
||||
console.log('Task 1');
|
||||
|
||||
return 5;
|
||||
});
|
||||
|
||||
console.log({ result });
|
||||
|
||||
console.log('always runs');
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/require-await
|
||||
await io.runTask('console-log-2', async () => {
|
||||
await Promise.resolve(null);
|
||||
throw new Error('dang2');
|
||||
});
|
||||
|
||||
console.log('---- end job ----');
|
||||
|
||||
// throw new Error('dang')
|
||||
await sendConfirmationToken({
|
||||
email: payload.email,
|
||||
force: payload.force,
|
||||
});
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user