interface IQueue
Since 0.1.0

Background job queue.

Examples

Example 1

const queue = ctx.services.get<IQueue>(CAPABILITIES.QUEUE);
await queue.add('send-email', { to: user.email, template: 'welcome' });
queue.process<SendEmailJob>('send-email', async (job) => {
  await mailer.send(job.data);
}, { concurrency: 3 });

Methods

add<T>(
name: string,
data: T,
options?: AddJobOptions
): Promise<string>

Enqueues a job.

process<T>(
name: string,
processor: JobProcessor<T>,
options?: ProcessOptions
): void

Registers a processor for a job name.

addRecurring<T>(
name: string,
data: T,
): Promise<void>

Schedules a recurring job.

Usage

import { type IQueue } from "common/src/index.ts";