import { Queue } from 'bullmq' import queueConfig from '#config/queue' class QueueService { public readonly nntpFetchQueue: Queue public readonly headerQueue: Queue public readonly fileQueue: Queue public readonly bodyQueue: Queue public readonly collectionQueue: Queue constructor() { this.nntpFetchQueue = new Queue('nntp-fetch-queue', { connection: queueConfig.connection }) this.headerQueue = new Queue('header-queue', { connection: queueConfig.connection }) this.fileQueue = new Queue('file-queue', { connection: queueConfig.connection }) this.bodyQueue = new Queue('body-queue', { connection: queueConfig.connection }) this.collectionQueue = new Queue('collection-queue', { connection: queueConfig.connection }) } async closeAll() { await Promise.all([ this.nntpFetchQueue.close(), this.headerQueue.close(), this.fileQueue.close(), this.bodyQueue.close(), this.collectionQueue.close(), ]) } } export default new QueueService()