summaryrefslogtreecommitdiff
path: root/packages/backend/src/queue/processors/CleanChartsProcessorService.ts
diff options
context:
space:
mode:
authortamaina <tamaina@hotmail.co.jp>2022-11-17 23:35:55 +0900
committertamaina <tamaina@hotmail.co.jp>2022-11-17 23:35:55 +0900
commit764da890b6ad3d53808ec592099a93d9d39d7b08 (patch)
treeb3e9b08bfafa2bbbb5f657af3adb60bcc9510b67 /packages/backend/src/queue/processors/CleanChartsProcessorService.ts
parentfix (diff)
parentMerge branch 'develop' of https://github.com/misskey-dev/misskey into develop (diff)
downloadmisskey-764da890b6ad3d53808ec592099a93d9d39d7b08.tar.gz
misskey-764da890b6ad3d53808ec592099a93d9d39d7b08.tar.bz2
misskey-764da890b6ad3d53808ec592099a93d9d39d7b08.zip
Merge branch 'develop' into pizzax-indexeddb
Diffstat (limited to 'packages/backend/src/queue/processors/CleanChartsProcessorService.ts')
-rw-r--r--packages/backend/src/queue/processors/CleanChartsProcessorService.ts68
1 files changed, 68 insertions, 0 deletions
diff --git a/packages/backend/src/queue/processors/CleanChartsProcessorService.ts b/packages/backend/src/queue/processors/CleanChartsProcessorService.ts
new file mode 100644
index 0000000000..e8e90f1422
--- /dev/null
+++ b/packages/backend/src/queue/processors/CleanChartsProcessorService.ts
@@ -0,0 +1,68 @@
+import { Inject, Injectable } from '@nestjs/common';
+import { In, MoreThan } from 'typeorm';
+import { DI } from '@/di-symbols.js';
+import type { Config } from '@/config.js';
+import type Logger from '@/logger.js';
+import FederationChart from '@/core/chart/charts/federation.js';
+import NotesChart from '@/core/chart/charts/notes.js';
+import UsersChart from '@/core/chart/charts/users.js';
+import ActiveUsersChart from '@/core/chart/charts/active-users.js';
+import InstanceChart from '@/core/chart/charts/instance.js';
+import PerUserNotesChart from '@/core/chart/charts/per-user-notes.js';
+import DriveChart from '@/core/chart/charts/drive.js';
+import PerUserReactionsChart from '@/core/chart/charts/per-user-reactions.js';
+import HashtagChart from '@/core/chart/charts/hashtag.js';
+import PerUserFollowingChart from '@/core/chart/charts/per-user-following.js';
+import PerUserDriveChart from '@/core/chart/charts/per-user-drive.js';
+import ApRequestChart from '@/core/chart/charts/ap-request.js';
+import { QueueLoggerService } from '../QueueLoggerService.js';
+import type Bull from 'bull';
+
+@Injectable()
+export class CleanChartsProcessorService {
+ private logger: Logger;
+
+ constructor(
+ @Inject(DI.config)
+ private config: Config,
+
+ private federationChart: FederationChart,
+ private notesChart: NotesChart,
+ private usersChart: UsersChart,
+ private activeUsersChart: ActiveUsersChart,
+ private instanceChart: InstanceChart,
+ private perUserNotesChart: PerUserNotesChart,
+ private driveChart: DriveChart,
+ private perUserReactionsChart: PerUserReactionsChart,
+ private hashtagChart: HashtagChart,
+ private perUserFollowingChart: PerUserFollowingChart,
+ private perUserDriveChart: PerUserDriveChart,
+ private apRequestChart: ApRequestChart,
+
+ private queueLoggerService: QueueLoggerService,
+ ) {
+ this.logger = this.queueLoggerService.logger.createSubLogger('clean-charts');
+ }
+
+ public async process(job: Bull.Job<Record<string, unknown>>, done: () => void): Promise<void> {
+ this.logger.info('Clean charts...');
+
+ await Promise.all([
+ this.federationChart.clean(),
+ this.notesChart.clean(),
+ this.usersChart.clean(),
+ this.activeUsersChart.clean(),
+ this.instanceChart.clean(),
+ this.perUserNotesChart.clean(),
+ this.driveChart.clean(),
+ this.perUserReactionsChart.clean(),
+ this.hashtagChart.clean(),
+ this.perUserFollowingChart.clean(),
+ this.perUserDriveChart.clean(),
+ this.apRequestChart.clean(),
+ ]);
+
+ this.logger.succ('All charts successfully cleaned.');
+ done();
+ }
+}