summaryrefslogtreecommitdiff
path: root/packages/backend/src/queue/ObjectStorageQueueProcessorsService.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/backend/src/queue/ObjectStorageQueueProcessorsService.ts')
-rw-r--r--packages/backend/src/queue/ObjectStorageQueueProcessorsService.ts30
1 files changed, 30 insertions, 0 deletions
diff --git a/packages/backend/src/queue/ObjectStorageQueueProcessorsService.ts b/packages/backend/src/queue/ObjectStorageQueueProcessorsService.ts
new file mode 100644
index 0000000000..402c038be0
--- /dev/null
+++ b/packages/backend/src/queue/ObjectStorageQueueProcessorsService.ts
@@ -0,0 +1,30 @@
+import { Inject, Injectable } from '@nestjs/common';
+import type { ObjectStorageJobData } from '@/queue/types.js';
+import { DI } from '@/di-symbols.js';
+import { Config } from '@/config.js';
+import { CleanRemoteFilesProcessorService } from './processors/CleanRemoteFilesProcessorService.js';
+import { DeleteFileProcessorService } from './processors/DeleteFileProcessorService.js';
+import type Bull from 'bull';
+
+@Injectable()
+export class ObjectStorageQueueProcessorsService {
+ constructor(
+ @Inject(DI.config)
+ private config: Config,
+
+ private deleteFileProcessorService: DeleteFileProcessorService,
+ private cleanRemoteFilesProcessorService: CleanRemoteFilesProcessorService,
+ ) {
+ }
+
+ public start(q: Bull.Queue) {
+ const jobs = {
+ deleteFile: (job, done) => this.deleteFileProcessorService.process(job, done),
+ cleanRemoteFiles: (job, done) => this.cleanRemoteFilesProcessorService.process(job, done),
+ } as Record<string, Bull.ProcessCallbackFunction<ObjectStorageJobData | Bull.ProcessPromiseFunction<ObjectStorageJobData>>>;
+
+ for (const [k, v] of Object.entries(jobs)) {
+ q.process(k, 16, v);
+ }
+ }
+}