diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2021-11-12 02:02:25 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2021-11-12 02:02:25 +0900 |
| commit | 0e4a111f81cceed275d9bec2695f6e401fb654d8 (patch) | |
| tree | 40874799472fa07416f17b50a398ac33b7771905 /src/server/api/endpoints/admin/queue | |
| parent | update deps (diff) | |
| download | sharkey-0e4a111f81cceed275d9bec2695f6e401fb654d8.tar.gz sharkey-0e4a111f81cceed275d9bec2695f6e401fb654d8.tar.bz2 sharkey-0e4a111f81cceed275d9bec2695f6e401fb654d8.zip | |
refactoring
Resolve #7779
Diffstat (limited to 'src/server/api/endpoints/admin/queue')
| -rw-r--r-- | src/server/api/endpoints/admin/queue/clear.ts | 18 | ||||
| -rw-r--r-- | src/server/api/endpoints/admin/queue/deliver-delayed.ts | 55 | ||||
| -rw-r--r-- | src/server/api/endpoints/admin/queue/inbox-delayed.ts | 55 | ||||
| -rw-r--r-- | src/server/api/endpoints/admin/queue/jobs.ts | 81 | ||||
| -rw-r--r-- | src/server/api/endpoints/admin/queue/stats.ts | 44 |
5 files changed, 0 insertions, 253 deletions
diff --git a/src/server/api/endpoints/admin/queue/clear.ts b/src/server/api/endpoints/admin/queue/clear.ts deleted file mode 100644 index fedb7065ab..0000000000 --- a/src/server/api/endpoints/admin/queue/clear.ts +++ /dev/null @@ -1,18 +0,0 @@ -import define from '../../../define'; -import { destroy } from '@/queue/index'; -import { insertModerationLog } from '@/services/insert-moderation-log'; - -export const meta = { - tags: ['admin'], - - requireCredential: true as const, - requireModerator: true, - - params: {} -}; - -export default define(meta, async (ps, me) => { - destroy(); - - insertModerationLog(me, 'clearQueue'); -}); diff --git a/src/server/api/endpoints/admin/queue/deliver-delayed.ts b/src/server/api/endpoints/admin/queue/deliver-delayed.ts deleted file mode 100644 index cd7b640983..0000000000 --- a/src/server/api/endpoints/admin/queue/deliver-delayed.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { deliverQueue } from '@/queue/queues'; -import { URL } from 'url'; -import define from '../../../define'; - -export const meta = { - tags: ['admin'], - - requireCredential: true as const, - requireModerator: true, - - params: { - }, - - res: { - type: 'array' as const, - optional: false as const, nullable: false as const, - items: { - type: 'array' as const, - optional: false as const, nullable: false as const, - items: { - anyOf: [ - { - type: 'string' as const, - }, - { - type: 'number' as const, - } - ] - } - }, - example: [[ - 'example.com', - 12 - ]] - } -}; - -export default define(meta, async (ps) => { - const jobs = await deliverQueue.getJobs(['delayed']); - - 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]); - } - } - - res.sort((a, b) => b[1] - a[1]); - - return res; -}); diff --git a/src/server/api/endpoints/admin/queue/inbox-delayed.ts b/src/server/api/endpoints/admin/queue/inbox-delayed.ts deleted file mode 100644 index 1925906c28..0000000000 --- a/src/server/api/endpoints/admin/queue/inbox-delayed.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { URL } from 'url'; -import define from '../../../define'; -import { inboxQueue } from '@/queue/queues'; - -export const meta = { - tags: ['admin'], - - requireCredential: true as const, - requireModerator: true, - - params: { - }, - - res: { - type: 'array' as const, - optional: false as const, nullable: false as const, - items: { - type: 'array' as const, - optional: false as const, nullable: false as const, - items: { - anyOf: [ - { - type: 'string' as const, - }, - { - type: 'number' as const, - } - ] - } - }, - example: [[ - 'example.com', - 12 - ]] - } -}; - -export default define(meta, async (ps) => { - const jobs = await inboxQueue.getJobs(['delayed']); - - 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]); - } - } - - res.sort((a, b) => b[1] - a[1]); - - return res; -}); diff --git a/src/server/api/endpoints/admin/queue/jobs.ts b/src/server/api/endpoints/admin/queue/jobs.ts deleted file mode 100644 index c426e5f39b..0000000000 --- a/src/server/api/endpoints/admin/queue/jobs.ts +++ /dev/null @@ -1,81 +0,0 @@ -import { deliverQueue, inboxQueue, dbQueue, objectStorageQueue } from '@/queue/queues'; -import $ from 'cafy'; -import define from '../../../define'; - -export const meta = { - tags: ['admin'], - - requireCredential: true as const, - requireModerator: true, - - params: { - domain: { - validator: $.str.or(['deliver', 'inbox', 'db', 'objectStorage']), - }, - - state: { - validator: $.str.or(['active', 'waiting', 'delayed']), - }, - - limit: { - validator: $.optional.num, - default: 50 - }, - }, - - res: { - type: 'array' as const, - optional: false as const, nullable: false as const, - items: { - type: 'object' as const, - optional: false as const, nullable: false as const, - properties: { - id: { - type: 'string' as const, - optional: false as const, nullable: false as const, - format: 'id' - }, - data: { - type: 'object' as const, - optional: false as const, nullable: false as const - }, - attempts: { - type: 'number' as const, - optional: false as const, nullable: false as const - }, - maxAttempts: { - type: 'number' as const, - optional: false as const, nullable: false as const - }, - timestamp: { - type: 'number' as const, - optional: false as const, nullable: false as const - } - } - } - } -}; - -export default define(meta, async (ps) => { - const queue = - ps.domain === 'deliver' ? deliverQueue : - ps.domain === 'inbox' ? inboxQueue : - ps.domain === 'db' ? dbQueue : - ps.domain === 'objectStorage' ? objectStorageQueue : - null as never; - - const jobs = await queue.getJobs([ps.state], 0, ps.limit!); - - return jobs.map(job => { - const data = job.data; - delete data.content; - delete data.user; - return { - id: job.id, - data, - attempts: job.attemptsMade, - maxAttempts: job.opts ? job.opts.attempts : 0, - timestamp: job.timestamp, - }; - }); -}); diff --git a/src/server/api/endpoints/admin/queue/stats.ts b/src/server/api/endpoints/admin/queue/stats.ts deleted file mode 100644 index 38f18459dd..0000000000 --- a/src/server/api/endpoints/admin/queue/stats.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { deliverQueue, inboxQueue, dbQueue, objectStorageQueue } from '@/queue/queues'; -import define from '../../../define'; - -export const meta = { - tags: ['admin'], - - requireCredential: true as const, - requireModerator: true, - - params: {}, - - res: { - type: 'object' as const, - optional: false as const, nullable: false as const, - properties: { - deliver: { - ref: 'QueueCount' - }, - inbox: { - ref: 'QueueCount' - }, - db: { - ref: 'QueueCount' - }, - objectStorage: { - ref: 'QueueCount' - } - } - } -}; - -export default define(meta, async (ps) => { - const deliverJobCounts = await deliverQueue.getJobCounts(); - const inboxJobCounts = await inboxQueue.getJobCounts(); - const dbJobCounts = await dbQueue.getJobCounts(); - const objectStorageJobCounts = await objectStorageQueue.getJobCounts(); - - return { - deliver: deliverJobCounts, - inbox: inboxJobCounts, - db: dbJobCounts, - objectStorage: objectStorageJobCounts, - }; -}); |