@cadence-mq/core
Version:
Modern, type-safe, and performant task queue for Node.js
13 lines (10 loc) • 570 B
text/typescript
import type { TaskContext, TaskDefinition } from '../tasks/tasks.types';
import type { Job } from './jobs.types';
import { retry } from '../shared/retry';
export async function processJob({ job, taskDefinition, taskExecutionContext }: { job: Job; taskDefinition: TaskDefinition; taskExecutionContext: TaskContext }) {
const maxRetries = job.maxRetries ?? taskDefinition.options?.maxRetries ?? 0;
return await retry(
() => taskDefinition.handler({ data: job.data, context: taskExecutionContext }),
{ maxRetries },
).then(result => result ?? undefined);
}