summaryrefslogtreecommitdiff
path: root/packages/backend/src/queue
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2022-02-06 00:13:52 +0900
committerGitHub <noreply@github.com>2022-02-06 00:13:52 +0900
commitc1b264e4e9686804e1b8ea17ba39753c41bd205b (patch)
tree041e794b683cf986f98fcc04a3d5a50a8dcb7554 /packages/backend/src/queue
parentenhance(client): improve chart rendering (diff)
downloadsharkey-c1b264e4e9686804e1b8ea17ba39753c41bd205b.tar.gz
sharkey-c1b264e4e9686804e1b8ea17ba39753c41bd205b.tar.bz2
sharkey-c1b264e4e9686804e1b8ea17ba39753c41bd205b.zip
Improve chart engine (#8253)
* wip * wip * wip * wip * wip * wip * wip * Update core.ts * wip * wip * #7361 * delete network chart * federationChart強化 apRequestChart追加 * tweak
Diffstat (limited to 'packages/backend/src/queue')
-rw-r--r--packages/backend/src/queue/index.ts5
-rw-r--r--packages/backend/src/queue/processors/deliver.ts5
-rw-r--r--packages/backend/src/queue/processors/inbox.ts4
-rw-r--r--packages/backend/src/queue/processors/system/clean-charts.ts28
-rw-r--r--packages/backend/src/queue/processors/system/index.ts2
5 files changed, 42 insertions, 2 deletions
diff --git a/packages/backend/src/queue/index.ts b/packages/backend/src/queue/index.ts
index f9994c3b59..795e520feb 100644
--- a/packages/backend/src/queue/index.ts
+++ b/packages/backend/src/queue/index.ts
@@ -261,6 +261,11 @@ export default function() {
}, {
repeat: { cron: '0 0 * * *' },
});
+
+ systemQueue.add('cleanCharts', {
+ }, {
+ repeat: { cron: '0 0 * * *' },
+ });
}
export function destroy() {
diff --git a/packages/backend/src/queue/processors/deliver.ts b/packages/backend/src/queue/processors/deliver.ts
index 46aeb8cb7e..e29f991307 100644
--- a/packages/backend/src/queue/processors/deliver.ts
+++ b/packages/backend/src/queue/processors/deliver.ts
@@ -4,7 +4,7 @@ import request from '@/remote/activitypub/request';
import { registerOrFetchInstanceDoc } from '@/services/register-or-fetch-instance-doc';
import Logger from '@/services/logger';
import { Instances } from '@/models/index';
-import { instanceChart } from '@/services/chart/index';
+import { apRequestChart, federationChart, instanceChart } from '@/services/chart/index';
import { fetchInstanceMetadata } from '@/services/fetch-instance-metadata';
import { fetchMeta } from '@/misc/fetch-meta';
import { toPuny } from '@/misc/convert-host';
@@ -61,6 +61,8 @@ export default async (job: Bull.Job<DeliverJobData>) => {
fetchInstanceMetadata(i);
instanceChart.requestSent(i.host, true);
+ apRequestChart.deliverSucc();
+ federationChart.deliverd(i.host);
});
return 'Success';
@@ -74,6 +76,7 @@ export default async (job: Bull.Job<DeliverJobData>) => {
});
instanceChart.requestSent(i.host, false);
+ apRequestChart.deliverFail();
});
if (res instanceof StatusError) {
diff --git a/packages/backend/src/queue/processors/inbox.ts b/packages/backend/src/queue/processors/inbox.ts
index 82a0de9663..c189256c33 100644
--- a/packages/backend/src/queue/processors/inbox.ts
+++ b/packages/backend/src/queue/processors/inbox.ts
@@ -5,7 +5,7 @@ import perform from '@/remote/activitypub/perform';
import Logger from '@/services/logger';
import { registerOrFetchInstanceDoc } from '@/services/register-or-fetch-instance-doc';
import { Instances } from '@/models/index';
-import { instanceChart } from '@/services/chart/index';
+import { apRequestChart, federationChart, instanceChart } from '@/services/chart/index';
import { fetchMeta } from '@/misc/fetch-meta';
import { toPuny, extractDbHost } from '@/misc/convert-host';
import { getApId } from '@/remote/activitypub/type';
@@ -143,6 +143,8 @@ export default async (job: Bull.Job<InboxJobData>): Promise<string> => {
fetchInstanceMetadata(i);
instanceChart.requestReceived(i.host);
+ apRequestChart.inbox();
+ federationChart.inbox(i.host);
});
// アクティビティを処理
diff --git a/packages/backend/src/queue/processors/system/clean-charts.ts b/packages/backend/src/queue/processors/system/clean-charts.ts
new file mode 100644
index 0000000000..fd156def9e
--- /dev/null
+++ b/packages/backend/src/queue/processors/system/clean-charts.ts
@@ -0,0 +1,28 @@
+import * as Bull from 'bull';
+
+import { queueLogger } from '../../logger';
+import { activeUsersChart, driveChart, federationChart, hashtagChart, instanceChart, notesChart, perUserDriveChart, perUserFollowingChart, perUserNotesChart, perUserReactionsChart, usersChart, apRequestChart } from '@/services/chart/index';
+
+const logger = queueLogger.createSubLogger('clean-charts');
+
+export async function cleanCharts(job: Bull.Job<Record<string, unknown>>, done: any): Promise<void> {
+ logger.info(`Resync charts...`);
+
+ await Promise.all([
+ federationChart.clean(),
+ notesChart.clean(),
+ usersChart.clean(),
+ activeUsersChart.clean(),
+ instanceChart.clean(),
+ perUserNotesChart.clean(),
+ driveChart.clean(),
+ perUserReactionsChart.clean(),
+ hashtagChart.clean(),
+ perUserFollowingChart.clean(),
+ perUserDriveChart.clean(),
+ apRequestChart.clean(),
+ ]);
+
+ logger.succ(`All charts successfully cleaned.`);
+ done();
+}
diff --git a/packages/backend/src/queue/processors/system/index.ts b/packages/backend/src/queue/processors/system/index.ts
index 8460ea0a9b..636fefc402 100644
--- a/packages/backend/src/queue/processors/system/index.ts
+++ b/packages/backend/src/queue/processors/system/index.ts
@@ -1,8 +1,10 @@
import * as Bull from 'bull';
import { resyncCharts } from './resync-charts';
+import { cleanCharts } from './clean-charts';
const jobs = {
resyncCharts,
+ cleanCharts,
} as Record<string, Bull.ProcessCallbackFunction<Record<string, unknown>> | Bull.ProcessPromiseFunction<Record<string, unknown>>>;
export default function(dbQueue: Bull.Queue<Record<string, unknown>>) {