Skip to content

Define Worker

defineWorker registers a BullMQ worker bound to your Redis connection configured via the module. Workers run in a dedicated Node process.

Usage

Create server/workers/index.ts:

ts
import { defineWorker } from '#processor'
import type { Job } from '#bullmq'

export default defineWorker({
  name: 'hello',
  async processor(job: Job) {
    // do work
    console.log('processed', job.name, job.data)
    return job.data
  },
  options: {},
})

API

ts
type DefineWorkerArgs = {
  name: string
  processor: Processor
  options?: Omit<WorkerOptions, 'connection'>
}

The options are forwarded to BullMQ's Worker constructor, except connection which is managed by the module.