UNPKG

@cadence-mq/core

Version:

Modern, type-safe, and performant task queue for Node.js

13 lines (10 loc) 570 B
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); }