31 lines
1013 B
TypeScript
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()
|