11import { Module } from '@nestjs/common' ;
22import { SequelizeModule } from '@nestjs/sequelize' ;
33import { ScheduleModule } from '@nestjs/schedule' ;
4+ import { BullModule } from '@nestjs/bullmq' ;
5+ import { ConfigService } from '@nestjs/config' ;
46import { DeletedItemsCleanupTask } from './tasks/deleted-items-cleanup.task' ;
57import { FileModule } from '../file/file.module' ;
68import { FolderModule } from '../folder/folder.module' ;
@@ -14,12 +16,33 @@ import { MailerModule } from '../../externals/mailer/mailer.module';
1416import { FeatureLimitModule } from '../feature-limit/feature-limit.module' ;
1517import { SecurityModule } from '../security/security.module' ;
1618import { DeleteExpiredFileVersionsTask } from './tasks/delete-expired-file-versions.task' ;
17- import { DeleteExpiredTrashItemsTask } from './tasks/delete-expired-trash-items.task' ;
18-
19+ import { TRASH_CLEANUP_QUEUE } from './tasks/trash-cleanup/trash-cleanup.scheduler' ;
20+ import { TrashCleanupScheduler } from './tasks/trash-cleanup/trash-cleanup.scheduler' ;
21+ import { TrashCleanupProcessor } from './tasks/trash-cleanup/trash-cleanup.processor' ;
1922@Module ( {
2023 imports : [
2124 SequelizeModule . forFeature ( [ JobExecutionModel ] ) ,
2225 ScheduleModule . forRoot ( ) ,
26+ BullModule . forRootAsync ( {
27+ inject : [ ConfigService ] ,
28+ useFactory : ( configService : ConfigService ) => {
29+ const url = new URL (
30+ configService . get < string > ( 'cache.redisJobsConnection' ) ,
31+ ) ;
32+ return {
33+ connection : {
34+ host : url . hostname ,
35+ port : Number ( url . port ) || 6379 ,
36+ password : url . password || undefined ,
37+ username : url . username || undefined ,
38+ maxRetriesPerRequest : null ,
39+ enableOfflineQueue : false ,
40+ tls : { } ,
41+ } ,
42+ } ;
43+ } ,
44+ } ) ,
45+ BullModule . registerQueue ( { name : TRASH_CLEANUP_QUEUE } ) ,
2346 FileModule ,
2447 FolderModule ,
2548 UserModule ,
@@ -34,7 +57,8 @@ import { DeleteExpiredTrashItemsTask } from './tasks/delete-expired-trash-items.
3457 RetroActiveDeleteItemsCleanupTask ,
3558 InactiveUsersEmailTask ,
3659 DeleteExpiredFileVersionsTask ,
37- DeleteExpiredTrashItemsTask ,
60+ TrashCleanupScheduler ,
61+ TrashCleanupProcessor ,
3862 ] ,
3963} )
4064export class JobsModule { }
0 commit comments