summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api/endpoints/admin/queue
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2022-09-18 03:27:08 +0900
committerGitHub <noreply@github.com>2022-09-18 03:27:08 +0900
commitb75184ec8e3436200bacdcd832e3324702553d20 (patch)
tree8b7e316f29e95df921db57289c8b8da476d18f07 /packages/backend/src/server/api/endpoints/admin/queue
parentUpdate ROADMAP.md (diff)
downloadsharkey-b75184ec8e3436200bacdcd832e3324702553d20.tar.gz
sharkey-b75184ec8e3436200bacdcd832e3324702553d20.tar.bz2
sharkey-b75184ec8e3436200bacdcd832e3324702553d20.zip
なんかもうめっちゃ変えた
Diffstat (limited to 'packages/backend/src/server/api/endpoints/admin/queue')
-rw-r--r--packages/backend/src/server/api/endpoints/admin/queue/clear.ts23
-rw-r--r--packages/backend/src/server/api/endpoints/admin/queue/deliver-delayed.ts40
-rw-r--r--packages/backend/src/server/api/endpoints/admin/queue/inbox-delayed.ts40
-rw-r--r--packages/backend/src/server/api/endpoints/admin/queue/stats.ts42
4 files changed, 92 insertions, 53 deletions
diff --git a/packages/backend/src/server/api/endpoints/admin/queue/clear.ts b/packages/backend/src/server/api/endpoints/admin/queue/clear.ts
index 8f015c280a..9129f53f06 100644
--- a/packages/backend/src/server/api/endpoints/admin/queue/clear.ts
+++ b/packages/backend/src/server/api/endpoints/admin/queue/clear.ts
@@ -1,6 +1,7 @@
-import define from '../../../define.js';
-import { destroy } from '@/queue/index.js';
-import { insertModerationLog } from '@/services/insert-moderation-log.js';
+import { Inject, Injectable } from '@nestjs/common';
+import { Endpoint } from '@/server/api/endpoint-base.js';
+import { ModerationLogService } from '@/core/ModerationLogService.js';
+import { QueueService } from '@/core/QueueService.js';
export const meta = {
tags: ['admin'],
@@ -16,8 +17,16 @@ export const paramDef = {
} as const;
// eslint-disable-next-line import/no-default-export
-export default define(meta, paramDef, async (ps, me) => {
- destroy();
+@Injectable()
+export default class extends Endpoint<typeof meta, typeof paramDef> {
+ constructor(
+ private moderationLogService: ModerationLogService,
+ private queueService: QueueService,
+ ) {
+ super(meta, paramDef, async (ps, me) => {
+ this.queueService.destroy();
- insertModerationLog(me, 'clearQueue');
-});
+ this.moderationLogService.insertModerationLog(me, 'clearQueue');
+ });
+ }
+}
diff --git a/packages/backend/src/server/api/endpoints/admin/queue/deliver-delayed.ts b/packages/backend/src/server/api/endpoints/admin/queue/deliver-delayed.ts
index 70f7d77de4..4b5be70d56 100644
--- a/packages/backend/src/server/api/endpoints/admin/queue/deliver-delayed.ts
+++ b/packages/backend/src/server/api/endpoints/admin/queue/deliver-delayed.ts
@@ -1,6 +1,7 @@
-import { deliverQueue } from '@/queue/queues.js';
import { URL } from 'node:url';
-import define from '../../../define.js';
+import { Inject, Injectable } from '@nestjs/common';
+import { Endpoint } from '@/server/api/endpoint-base.js';
+import { DeliverQueue } from '@/core/queue/QueueModule.js';
export const meta = {
tags: ['admin'],
@@ -39,21 +40,28 @@ export const paramDef = {
} as const;
// eslint-disable-next-line import/no-default-export
-export default define(meta, paramDef, async (ps) => {
- const jobs = await deliverQueue.getJobs(['delayed']);
+@Injectable()
+export default class extends Endpoint<typeof meta, typeof paramDef> {
+ constructor(
+ @Inject('queue:deliver') public deliverQueue: DeliverQueue,
+ ) {
+ super(meta, paramDef, async (ps, me) => {
+ const jobs = await this.deliverQueue.getJobs(['delayed']);
- const res = [] as [string, number][];
+ const res = [] as [string, number][];
- for (const job of jobs) {
- const host = new URL(job.data.to).host;
- if (res.find(x => x[0] === host)) {
- res.find(x => x[0] === host)![1]++;
- } else {
- res.push([host, 1]);
- }
- }
+ for (const job of jobs) {
+ const host = new URL(job.data.to).host;
+ if (res.find(x => x[0] === host)) {
+ res.find(x => x[0] === host)![1]++;
+ } else {
+ res.push([host, 1]);
+ }
+ }
- res.sort((a, b) => b[1] - a[1]);
+ res.sort((a, b) => b[1] - a[1]);
- return res;
-});
+ return res;
+ });
+ }
+}
diff --git a/packages/backend/src/server/api/endpoints/admin/queue/inbox-delayed.ts b/packages/backend/src/server/api/endpoints/admin/queue/inbox-delayed.ts
index 2235ce8f97..715974e917 100644
--- a/packages/backend/src/server/api/endpoints/admin/queue/inbox-delayed.ts
+++ b/packages/backend/src/server/api/endpoints/admin/queue/inbox-delayed.ts
@@ -1,6 +1,7 @@
import { URL } from 'node:url';
-import define from '../../../define.js';
-import { inboxQueue } from '@/queue/queues.js';
+import { Inject, Injectable } from '@nestjs/common';
+import { Endpoint } from '@/server/api/endpoint-base.js';
+import { InboxQueue } from '@/core/queue/QueueModule.js';
export const meta = {
tags: ['admin'],
@@ -39,21 +40,28 @@ export const paramDef = {
} as const;
// eslint-disable-next-line import/no-default-export
-export default define(meta, paramDef, async (ps) => {
- const jobs = await inboxQueue.getJobs(['delayed']);
+@Injectable()
+export default class extends Endpoint<typeof meta, typeof paramDef> {
+ constructor(
+ @Inject('queue:inbox') public inboxQueue: InboxQueue,
+ ) {
+ super(meta, paramDef, async (ps, me) => {
+ const jobs = await this.inboxQueue.getJobs(['delayed']);
- const res = [] as [string, number][];
+ const res = [] as [string, number][];
- for (const job of jobs) {
- const host = new URL(job.data.signature.keyId).host;
- if (res.find(x => x[0] === host)) {
- res.find(x => x[0] === host)![1]++;
- } else {
- res.push([host, 1]);
- }
- }
+ for (const job of jobs) {
+ const host = new URL(job.data.signature.keyId).host;
+ if (res.find(x => x[0] === host)) {
+ res.find(x => x[0] === host)![1]++;
+ } else {
+ res.push([host, 1]);
+ }
+ }
- res.sort((a, b) => b[1] - a[1]);
+ res.sort((a, b) => b[1] - a[1]);
- return res;
-});
+ return res;
+ });
+ }
+}
diff --git a/packages/backend/src/server/api/endpoints/admin/queue/stats.ts b/packages/backend/src/server/api/endpoints/admin/queue/stats.ts
index 988b5a5e35..f2ca81a8da 100644
--- a/packages/backend/src/server/api/endpoints/admin/queue/stats.ts
+++ b/packages/backend/src/server/api/endpoints/admin/queue/stats.ts
@@ -1,5 +1,6 @@
-import { deliverQueue, inboxQueue, dbQueue, objectStorageQueue } from '@/queue/queues.js';
-import define from '../../../define.js';
+import { Inject, Injectable } from '@nestjs/common';
+import { Endpoint } from '@/server/api/endpoint-base.js';
+import { DbQueue, DeliverQueue, EndedPollNotificationQueue, InboxQueue, ObjectStorageQueue, SystemQueue, WebhookDeliverQueue } from '@/core/queue/QueueModule.js';
export const meta = {
tags: ['admin'],
@@ -38,16 +39,29 @@ export const paramDef = {
} as const;
// eslint-disable-next-line import/no-default-export
-export default define(meta, paramDef, async (ps) => {
- const deliverJobCounts = await deliverQueue.getJobCounts();
- const inboxJobCounts = await inboxQueue.getJobCounts();
- const dbJobCounts = await dbQueue.getJobCounts();
- const objectStorageJobCounts = await objectStorageQueue.getJobCounts();
+@Injectable()
+export default class extends Endpoint<typeof meta, typeof paramDef> {
+ constructor(
+ @Inject('queue:system') public systemQueue: SystemQueue,
+ @Inject('queue:endedPollNotification') public endedPollNotificationQueue: EndedPollNotificationQueue,
+ @Inject('queue:deliver') public deliverQueue: DeliverQueue,
+ @Inject('queue:inbox') public inboxQueue: InboxQueue,
+ @Inject('queue:db') public dbQueue: DbQueue,
+ @Inject('queue:objectStorage') public objectStorageQueue: ObjectStorageQueue,
+ @Inject('queue:webhookDeliver') public webhookDeliverQueue: WebhookDeliverQueue,
+ ) {
+ super(meta, paramDef, async (ps, me) => {
+ const deliverJobCounts = await this.deliverQueue.getJobCounts();
+ const inboxJobCounts = await this.inboxQueue.getJobCounts();
+ const dbJobCounts = await this.dbQueue.getJobCounts();
+ const objectStorageJobCounts = await this.objectStorageQueue.getJobCounts();
- return {
- deliver: deliverJobCounts,
- inbox: inboxJobCounts,
- db: dbJobCounts,
- objectStorage: objectStorageJobCounts,
- };
-});
+ return {
+ deliver: deliverJobCounts,
+ inbox: inboxJobCounts,
+ db: dbJobCounts,
+ objectStorage: objectStorageJobCounts,
+ };
+ });
+ }
+}