BullMQPluginOptions

BullMQPluginOptions

Package: @vendure/job-queue-plugin File: types.ts
v1.2.0

Configuration options for the BullMQJobQueuePlugin.

Signature

interface BullMQPluginOptions {
  connection?: ConnectionOptions;
  queueOptions?: Exclude<QueueOptions, 'connection'>;
  workerOptions?: Exclude<WorkerOptions, 'connection'>;
  schedulerOptions?: Exclude<QueueSchedulerOptions, 'connection'>;
  setRetries?: (queueName: string, job: Job) => number;
  setBackoff?: (queueName: string, job: Job) => BackoffOptions | undefined;
}

Members

connection

property
type:
ConnectionOptions

Connection options which will be passed directly to BullMQ when creating a new Queue, Worker and Scheduler instance.

If omitted, it will attempt to connect to Redis at 127.0.0.1:6379.

queueOptions

property
type:
Exclude<QueueOptions, 'connection'>
Additional options used when instantiating the BullMQ Queue instance. See the BullMQ QueueOptions docs

workerOptions

property
type:
Exclude<WorkerOptions, 'connection'>
Additional options used when instantiating the BullMQ Worker instance. See the BullMQ WorkerOptions docs

schedulerOptions

property
type:
Exclude<QueueSchedulerOptions, 'connection'>
Additional options used when instantiating the BullMQ QueueScheduler instance. See the BullMQ QueueSchedulerOptions docs

setRetries

property
v1.3.0
type:
(queueName: string, job: Job) => number

When a job is added to the JobQueue using JobQueue.add(), the calling code may specify the number of retries in case of failure. This option allows you to override that number and specify your own number of retries based on the job being added.

Example

setRetries: (queueName, job) => {
  if (queueName === 'send-email') {
    // Override the default number of retries
    // for the 'send-email' job because we have
    // a very unreliable email service.
    return 10;
  }
  return job.retries;
}

setBackoff

property
v1.3.0
type:
(queueName: string, job: Job) => BackoffOptions | undefined
default:
'exponential', 1000

This allows you to specify the backoff settings when a failed job gets retried. In other words, this determines how much time should pass before attempting to process the failed job again. If the function returns undefined, the default value of exponential/1000ms will be used.

Example

setBackoff: (queueName, job) => {
  return {
    type: 'exponential', // or 'fixed'
    delay: 10000 // first retry after 10s, second retry after 20s, 40s,...
  };
}

BackoffOptions

Package: @vendure/job-queue-plugin File: types.ts
v1.3.0

Configuration for the backoff function when retrying failed jobs.

Signature

interface BackoffOptions {
  type: 'exponential' | 'fixed';
  delay: number;
}

Members

type

property
type:
'exponential' | 'fixed'

delay

property
type:
number