@triplef/bullmq
v1.1.4
Published
A NestJS module for BullMQ integration with configuration types and validation schemas.
Downloads
62
Readme
@triplef/bullmq
A NestJS module for BullMQ integration with configuration types and validation schemas.
This library is **ESM-only** and does not support CommonJS.Your project must use ES modules.
Features
- Queue registration — registers one or more BullMQ queues from strings or
{ name, connection }objects. - Shared config — a single
useFactorysupplies the baseBullMQConfig(connection, default job options) to every queue. - Per-queue overrides — a queue-level
connectionwins over the factory output. - Validation schema —
BullMQConfigSchemavalidates connection anddefaultJobOptionsbefore the queues are registered.
Installation
pnpm add @triplef/bullmqUsage
Module setup
The library ships no env-driven config — supply the BullMQConfig through a
factory, and validate it with the exported BullMQConfigSchema.
import { BullMQModule, BullMQConfigSchema } from '@triplef/bullmq';
import { ValidateReturnValue } from '@triplef/config-factory/validate-return-value';
@Module({
imports: [
BullMQModule.registerAsync({
global: true,
inject: [MyBullMQConfigService],
queues: ['harness', { name: 'vectorize', connection: { host: 'keydb' } }],
processors: [MyProcessor],
useFactory: (config: MyBullMQConfigService) => config.options,
}),
],
})
export class AppModule {}Queue config
import type { BullMQConfig } from '@triplef/bullmq';
const config: BullMQConfig = {
connection: { host: 'localhost', port: 6379 },
defaultJobOptions: { attempts: 3, backoff: { type: 'exponential', delay: 1000 } },
};