mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-15 21:19:40 +02:00
Move queue name constants to separate file (queue-names.ts) to avoid circular dependency between queue.module.ts and processor files. The @Processor decorator evaluates at module load time, and importing constants from queue.module.ts created a circular dependency that resulted in undefined queue names. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
72 lines
1.7 KiB
TypeScript
72 lines
1.7 KiB
TypeScript
import { Module } from '@nestjs/common';
|
|
import { BullModule } from '@nestjs/bullmq';
|
|
import { EmailProcessor } from './processors/email.processor';
|
|
import { PushProcessor } from './processors/push.processor';
|
|
import { MatrixProcessor } from './processors/matrix.processor';
|
|
import { WebhookProcessor } from './processors/webhook.processor';
|
|
import { ChannelsModule } from '../channels/channels.module';
|
|
import { MetricsModule } from '../metrics/metrics.module';
|
|
import { EMAIL_QUEUE, PUSH_QUEUE, MATRIX_QUEUE, WEBHOOK_QUEUE } from './queue-names';
|
|
|
|
// Re-export for convenience
|
|
export { EMAIL_QUEUE, PUSH_QUEUE, MATRIX_QUEUE, WEBHOOK_QUEUE } from './queue-names';
|
|
|
|
@Module({
|
|
imports: [
|
|
BullModule.registerQueue(
|
|
{
|
|
name: EMAIL_QUEUE,
|
|
defaultJobOptions: {
|
|
attempts: 3,
|
|
backoff: {
|
|
type: 'exponential',
|
|
delay: 5000,
|
|
},
|
|
removeOnComplete: 100,
|
|
removeOnFail: 1000,
|
|
},
|
|
},
|
|
{
|
|
name: PUSH_QUEUE,
|
|
defaultJobOptions: {
|
|
attempts: 3,
|
|
backoff: {
|
|
type: 'exponential',
|
|
delay: 1000,
|
|
},
|
|
removeOnComplete: 100,
|
|
removeOnFail: 1000,
|
|
},
|
|
},
|
|
{
|
|
name: MATRIX_QUEUE,
|
|
defaultJobOptions: {
|
|
attempts: 3,
|
|
backoff: {
|
|
type: 'exponential',
|
|
delay: 2000,
|
|
},
|
|
removeOnComplete: 100,
|
|
removeOnFail: 500,
|
|
},
|
|
},
|
|
{
|
|
name: WEBHOOK_QUEUE,
|
|
defaultJobOptions: {
|
|
attempts: 5,
|
|
backoff: {
|
|
type: 'exponential',
|
|
delay: 3000,
|
|
},
|
|
removeOnComplete: 100,
|
|
removeOnFail: 1000,
|
|
},
|
|
}
|
|
),
|
|
ChannelsModule,
|
|
MetricsModule,
|
|
],
|
|
providers: [EmailProcessor, PushProcessor, MatrixProcessor, WebhookProcessor],
|
|
exports: [BullModule],
|
|
})
|
|
export class QueueModule {}
|