UNPKG

@vendure/core

Version:

A modern, headless ecommerce framework

36 lines (35 loc) 1.2 kB
import { InjectableStrategy } from '../../common'; import { JobData, JobQueueStrategyJobOptions } from '../../job-queue'; import { Job } from '../../job-queue'; /** * @description * Defines how the jobs in the {@link JobQueueService} are persisted and * accessed. Custom strategies can be defined to make use of external * services such as Redis. * * :::info * * This is configured via the `jobQueueOptions.jobQueueStrategy` property of * your VendureConfig. * * ::: * * @docsCategory JobQueue */ export interface JobQueueStrategy extends InjectableStrategy { /** * @description * Add a new job to the queue. */ add<Data extends JobData<Data> = object>(job: Job<Data>, jobOptions?: JobQueueStrategyJobOptions<Data>): Promise<Job<Data>>; /** * @description * Start the job queue */ start<Data extends JobData<Data> = object>(queueName: string, process: (job: Job<Data>) => Promise<any>): Promise<void>; /** * @description * Stops a queue from running. Its not guaranteed to stop immediately. */ stop<Data extends JobData<Data> = object>(queueName: string, process: (job: Job<Data>) => Promise<any>): Promise<void>; }