123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- import { immichAppConfig } from '@app/common/config';
- import { DatabaseModule } from '@app/database';
- import { AssetEntity } from '@app/database/entities/asset.entity';
- import { ExifEntity } from '@app/database/entities/exif.entity';
- import { SmartInfoEntity } from '@app/database/entities/smart-info.entity';
- import { UserEntity } from '@app/database/entities/user.entity';
- import { QueueNameEnum } from '@app/job/constants/queue-name.constant';
- import { BullModule } from '@nestjs/bull';
- import { Module } from '@nestjs/common';
- import { ConfigModule } from '@nestjs/config';
- import { TypeOrmModule } from '@nestjs/typeorm';
- import { ImmichConfigModule } from 'libs/immich-config/src';
- import { CommunicationModule } from '../../immich/src/api-v1/communication/communication.module';
- import { MicroservicesService } from './microservices.service';
- import { AssetUploadedProcessor } from './processors/asset-uploaded.processor';
- import { GenerateChecksumProcessor } from './processors/generate-checksum.processor';
- import { MachineLearningProcessor } from './processors/machine-learning.processor';
- import { MetadataExtractionProcessor } from './processors/metadata-extraction.processor';
- import { ThumbnailGeneratorProcessor } from './processors/thumbnail.processor';
- import { UserDeletionProcessor } from './processors/user-deletion.processor';
- import { VideoTranscodeProcessor } from './processors/video-transcode.processor';
- @Module({
- imports: [
- ConfigModule.forRoot(immichAppConfig),
- DatabaseModule,
- ImmichConfigModule,
- TypeOrmModule.forFeature([UserEntity, ExifEntity, AssetEntity, SmartInfoEntity]),
- BullModule.forRootAsync({
- useFactory: async () => ({
- prefix: 'immich_bull',
- redis: {
- host: process.env.REDIS_HOSTNAME || 'immich_redis',
- port: parseInt(process.env.REDIS_PORT || '6379'),
- db: parseInt(process.env.REDIS_DBINDEX || '0'),
- password: process.env.REDIS_PASSWORD || undefined,
- path: process.env.REDIS_SOCKET || undefined,
- },
- }),
- }),
- BullModule.registerQueue(
- {
- name: QueueNameEnum.USER_DELETION,
- defaultJobOptions: {
- attempts: 3,
- removeOnComplete: true,
- removeOnFail: false,
- },
- },
- {
- name: QueueNameEnum.THUMBNAIL_GENERATION,
- defaultJobOptions: {
- attempts: 3,
- removeOnComplete: true,
- removeOnFail: false,
- },
- },
- {
- name: QueueNameEnum.ASSET_UPLOADED,
- defaultJobOptions: {
- attempts: 3,
- removeOnComplete: true,
- removeOnFail: false,
- },
- },
- {
- name: QueueNameEnum.METADATA_EXTRACTION,
- defaultJobOptions: {
- attempts: 3,
- removeOnComplete: true,
- removeOnFail: false,
- },
- },
- {
- name: QueueNameEnum.VIDEO_CONVERSION,
- defaultJobOptions: {
- attempts: 3,
- removeOnComplete: true,
- removeOnFail: false,
- },
- },
- {
- name: QueueNameEnum.CHECKSUM_GENERATION,
- defaultJobOptions: {
- attempts: 3,
- removeOnComplete: true,
- removeOnFail: false,
- },
- },
- {
- name: QueueNameEnum.MACHINE_LEARNING,
- defaultJobOptions: {
- attempts: 3,
- removeOnComplete: true,
- removeOnFail: false,
- },
- },
- ),
- CommunicationModule,
- ],
- controllers: [],
- providers: [
- MicroservicesService,
- AssetUploadedProcessor,
- ThumbnailGeneratorProcessor,
- MetadataExtractionProcessor,
- VideoTranscodeProcessor,
- GenerateChecksumProcessor,
- MachineLearningProcessor,
- UserDeletionProcessor,
- ],
- exports: [],
- })
- export class MicroservicesModule {}
|