usenet-indexer/app/services/QueueService.ts

31 lines
1013 B
TypeScript

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()