58 lines
2.2 KiB
TypeScript
58 lines
2.2 KiB
TypeScript
import { Module } from '@nestjs/common';
|
|
import { ConfigModule, ConfigService } from '@nestjs/config';
|
|
import { BullModule } from '@nestjs/bullmq';
|
|
import { PrismaModule } from './shared/prisma/prisma.module';
|
|
import { RenderEngineModule } from './shared/render-engine/render-engine.module';
|
|
import { QuotaModule } from './shared/quota/quota.module';
|
|
import { AuditModule } from './shared/audit/audit.module';
|
|
import { YouTubeSyncModule } from './modules/youtube-sync/youtube-sync.module';
|
|
import { BulkJobsModule } from './modules/bulk-jobs/bulk-jobs.module';
|
|
import { LintingModule } from './modules/linting/linting.module';
|
|
import { ImportsModule } from './modules/imports/imports.module';
|
|
import { QUEUES } from './queues/queues.constants';
|
|
import { YouTubeSyncProcessor } from './queues/processors/youtube-sync.processor';
|
|
import { BulkMetadataProcessor } from './queues/processors/bulk-metadata.processor';
|
|
import { RenderProcessor } from './queues/processors/render.processor';
|
|
import { LintProcessor } from './queues/processors/lint.processor';
|
|
import { ImportProcessor } from './queues/processors/import.processor';
|
|
import { ConflictDetectionProcessor } from './queues/processors/conflict-detection.processor';
|
|
import { ConflictDetectionScheduler } from './queues/schedulers/conflict-detection.scheduler';
|
|
|
|
@Module({
|
|
imports: [
|
|
ConfigModule.forRoot({ isGlobal: true }),
|
|
BullModule.forRootAsync({
|
|
useFactory: (config: ConfigService) => ({
|
|
connection: { url: config.get<string>('REDIS_URL') ?? 'redis://localhost:6379' },
|
|
}),
|
|
inject: [ConfigService],
|
|
}),
|
|
BullModule.registerQueue(
|
|
{ name: QUEUES.YOUTUBE_SYNC },
|
|
{ name: QUEUES.CONFLICT_DETECTION },
|
|
{ name: QUEUES.BULK_METADATA },
|
|
{ name: QUEUES.RENDER },
|
|
{ name: QUEUES.LINT },
|
|
{ name: QUEUES.IMPORT },
|
|
),
|
|
PrismaModule,
|
|
RenderEngineModule,
|
|
QuotaModule,
|
|
AuditModule,
|
|
YouTubeSyncModule,
|
|
BulkJobsModule,
|
|
LintingModule,
|
|
ImportsModule,
|
|
],
|
|
providers: [
|
|
YouTubeSyncProcessor,
|
|
BulkMetadataProcessor,
|
|
RenderProcessor,
|
|
LintProcessor,
|
|
ImportProcessor,
|
|
ConflictDetectionProcessor,
|
|
ConflictDetectionScheduler,
|
|
],
|
|
})
|
|
export class WorkerModule {}
|