add background queue to admin dashboard
This commit is contained in:
parent
428c9258a1
commit
15bb9b38e1
6 changed files with 34 additions and 14 deletions
4
locales/index.d.ts
vendored
4
locales/index.d.ts
vendored
|
|
@ -13669,6 +13669,10 @@ export interface Locale extends ILocale {
|
|||
* Are you sure you want to restart this account migration?
|
||||
*/
|
||||
"restartMigrationConfirm": string;
|
||||
/**
|
||||
* Background queue
|
||||
*/
|
||||
"backgroundQueue": string;
|
||||
}
|
||||
declare const locales: {
|
||||
[lang: string]: Locale;
|
||||
|
|
|
|||
|
|
@ -38,7 +38,6 @@ SPDX-License-Identifier: AGPL-3.0-only
|
|||
import { markRaw, onMounted, onUnmounted, ref, useTemplateRef } from 'vue';
|
||||
import * as Misskey from 'misskey-js';
|
||||
import XChart from './overview.queue.chart.vue';
|
||||
import type { ApQueueDomain } from '@/pages/admin/queue.vue';
|
||||
import number from '@/filters/number.js';
|
||||
import { useStream } from '@/stream.js';
|
||||
|
||||
|
|
@ -54,7 +53,7 @@ const chartDelayed = useTemplateRef('chartDelayed');
|
|||
const chartWaiting = useTemplateRef('chartWaiting');
|
||||
|
||||
const props = defineProps<{
|
||||
domain: ApQueueDomain;
|
||||
domain: 'inbox' | 'deliver' | 'background';
|
||||
}>();
|
||||
|
||||
function onStats(stats: Misskey.entities.QueueStats) {
|
||||
|
|
@ -63,17 +62,17 @@ function onStats(stats: Misskey.entities.QueueStats) {
|
|||
delayed.value = stats[props.domain].delayed;
|
||||
waiting.value = stats[props.domain].waiting;
|
||||
|
||||
chartProcess.value.pushData(stats[props.domain].activeSincePrevTick);
|
||||
chartActive.value.pushData(stats[props.domain].active);
|
||||
chartDelayed.value.pushData(stats[props.domain].delayed);
|
||||
chartWaiting.value.pushData(stats[props.domain].waiting);
|
||||
chartProcess.value?.pushData(stats[props.domain].activeSincePrevTick);
|
||||
chartActive.value?.pushData(stats[props.domain].active);
|
||||
chartDelayed.value?.pushData(stats[props.domain].delayed);
|
||||
chartWaiting.value?.pushData(stats[props.domain].waiting);
|
||||
}
|
||||
|
||||
function onStatsLog(statsLog: Misskey.entities.QueueStatsLog) {
|
||||
const dataProcess: Misskey.entities.QueueStats[ApQueueDomain]['activeSincePrevTick'][] = [];
|
||||
const dataActive: Misskey.entities.QueueStats[ApQueueDomain]['active'][] = [];
|
||||
const dataDelayed: Misskey.entities.QueueStats[ApQueueDomain]['delayed'][] = [];
|
||||
const dataWaiting: Misskey.entities.QueueStats[ApQueueDomain]['waiting'][] = [];
|
||||
const dataProcess: number[] = [];
|
||||
const dataActive: number[] = [];
|
||||
const dataDelayed: number[] = [];
|
||||
const dataWaiting: number[] = [];
|
||||
|
||||
for (const stats of [...statsLog].reverse()) {
|
||||
dataProcess.push(stats[props.domain].activeSincePrevTick);
|
||||
|
|
@ -82,10 +81,10 @@ function onStatsLog(statsLog: Misskey.entities.QueueStatsLog) {
|
|||
dataWaiting.push(stats[props.domain].waiting);
|
||||
}
|
||||
|
||||
chartProcess.value.setData(dataProcess);
|
||||
chartActive.value.setData(dataActive);
|
||||
chartDelayed.value.setData(dataDelayed);
|
||||
chartWaiting.value.setData(dataWaiting);
|
||||
chartProcess.value?.setData(dataProcess);
|
||||
chartActive.value?.setData(dataActive);
|
||||
chartDelayed.value?.setData(dataDelayed);
|
||||
chartWaiting.value?.setData(dataWaiting);
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
|
|
|
|||
|
|
@ -60,6 +60,11 @@ SPDX-License-Identifier: AGPL-3.0-only
|
|||
<template #header>Inbox queue</template>
|
||||
<XQueue domain="inbox"/>
|
||||
</MkFoldableSection>
|
||||
|
||||
<MkFoldableSection class="item">
|
||||
<template #header>{{ i18n.ts.backgroundQueue }}</template>
|
||||
<XQueue domain="background"/>
|
||||
</MkFoldableSection>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -298,6 +298,9 @@ type AdminQueueInboxDelayedResponse = operations['admin___queue___inbox-delayed'
|
|||
// @public (undocumented)
|
||||
type AdminQueueJobsRequest = operations['admin___queue___jobs']['requestBody']['content']['application/json'];
|
||||
|
||||
// @public (undocumented)
|
||||
type AdminQueueJobsResponse = operations['admin___queue___jobs']['responses']['200']['content']['application/json'];
|
||||
|
||||
// @public (undocumented)
|
||||
type AdminQueuePromoteJobsRequest = operations['admin___queue___promote-jobs']['requestBody']['content']['application/json'];
|
||||
|
||||
|
|
@ -1617,6 +1620,7 @@ declare namespace entities {
|
|||
AdminQueueDeliverDelayedResponse,
|
||||
AdminQueueInboxDelayedResponse,
|
||||
AdminQueueJobsRequest,
|
||||
AdminQueueJobsResponse,
|
||||
AdminQueuePromoteJobsRequest,
|
||||
AdminQueueQueueStatsRequest,
|
||||
AdminQueueRemoveJobRequest,
|
||||
|
|
|
|||
|
|
@ -313,6 +313,12 @@ export type QueueStats = {
|
|||
waiting: number;
|
||||
delayed: number;
|
||||
};
|
||||
background: {
|
||||
activeSincePrevTick: number;
|
||||
active: number;
|
||||
waiting: number;
|
||||
delayed: number;
|
||||
};
|
||||
};
|
||||
|
||||
export type QueueStatsLog = QueueStats[];
|
||||
|
|
|
|||
|
|
@ -731,3 +731,5 @@ accountMigrationUri: "Migration URI"
|
|||
restartMigration: "Restart account migration"
|
||||
restartMigrationDescription: "Account migration was last attempted {date}. If the migration failed or was incomplete, then you may click this button to restart the process."
|
||||
restartMigrationConfirm: "Are you sure you want to restart this account migration?"
|
||||
|
||||
backgroundQueue: "Background queue"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue