@cadence-mq/core
Version:
Modern, type-safe, and performant task queue for Node.js
15 lines (11 loc) • 574 B
text/typescript
import type { TaskDefinitionRegistry } from '../tasks/task-definition.types';
import type { Job } from './jobs.types';
import { retry } from '../shared/retry';
export async function processJob({ job, taskDefinitionRegistry }: { job: Job; taskDefinitionRegistry: TaskDefinitionRegistry }) {
const taskDefinition = taskDefinitionRegistry.get(job.taskName);
const maxRetries = job.maxRetries ?? taskDefinition.options?.maxRetries ?? 0;
return await retry(
() => taskDefinition.handler({ data: job.data, context: { workerId: job.id } }),
{ maxRetries },
);
}