UNPKG

@saas-packages/queue-manager

Version:

Queue manager for SaaS applications using BullMQ

26 lines 1.86 kB
import { Queue, Worker, QueueOptions, WorkerOptions, Job } from 'bullmq'; import { Logger } from '@saas-packages/core'; import { QueueManagerInterface, QueueManagerConfig, JobProcessor, JobData, QueueJobOptions, QueueManagerEvent, QueueManagerListener } from './types'; import { EventEmitter } from 'events'; export declare class QueueManager extends EventEmitter implements QueueManagerInterface { private readonly config; private readonly logger?; private readonly queues; private readonly workers; private readonly redis; constructor(config: QueueManagerConfig, logger?: Logger | undefined); subscribe<E extends QueueManagerEvent>(event: E, listener: E extends 'queueCreated' | 'queueRemoved' ? QueueManagerListener['queueEvent'] : E extends 'workerCreated' | 'workerRemoved' | 'workerUpdated' ? QueueManagerListener['workerEvent'] : E extends 'newListener' | 'removeListener' ? QueueManagerListener['listenerEvent'] : E extends 'queueManagerClosed' ? QueueManagerListener['queueManagerClosed'] : never): void; unsubscribe(event: QueueManagerEvent, listener: (...args: any[]) => void): void; private notify; createQueue<T = any>(name: string, options?: Partial<Omit<QueueOptions, 'connection'>>): Queue<T>; createWorker<P extends JobProcessor<T>, T = unknown>(queueName: string, processor: P, options?: Partial<Omit<WorkerOptions, 'connection'>>): Worker<T>; addJob<T = JobData>(queueName: string, data: T, options?: QueueJobOptions): Promise<Job<T>>; getAllQueues(): Queue[]; getQueue<T = any>(name: string): Queue<T> | undefined; getAllWorkers(): Worker[]; getWorker<T = any>(queueName: string): Worker<T> | undefined; closeQueue(name: string): Promise<void>; closeWorker(queueName: string): Promise<void>; closeAll(): Promise<void>; } //# sourceMappingURL=queue-manager.d.ts.map