From e5841a2c9a7b3f018291ebcdb6d42d572bf018f6 Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 7 Feb 2019 16:05:29 +0900 Subject: [PATCH] Improve instance stats --- src/models/instance.ts | 9 +++++++-- src/queue/processors/http/process-inbox.ts | 11 +++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/models/instance.ts b/src/models/instance.ts index 7a94a0a04..904ed95dc 100644 --- a/src/models/instance.ts +++ b/src/models/instance.ts @@ -44,12 +44,17 @@ export interface IInstance { followersCount: number; /** - * 最近の通信日時 + * 直近のリクエスト送信日時 */ latestRequestSentAt?: Date; /** - * 最近の通信のHTTPステータス + * 直近のリクエスト送信時のHTTPステータスコード */ latestStatus?: number; + + /** + * 直近のリクエスト受信日時 + */ + latestRequestReceivedAt?: Date; } diff --git a/src/queue/processors/http/process-inbox.ts b/src/queue/processors/http/process-inbox.ts index 3cc13cbda..d88f00a09 100644 --- a/src/queue/processors/http/process-inbox.ts +++ b/src/queue/processors/http/process-inbox.ts @@ -8,6 +8,8 @@ import { toUnicode } from 'punycode'; import { URL } from 'url'; import { publishApLogStream } from '../../../services/stream'; import Logger from '../../../misc/logger'; +import { registerOrFetchInstanceDoc } from '../../../services/register-or-fetch-instance-doc'; +import Instance from '../../../models/instance'; const logger = new Logger('inbox'); @@ -101,6 +103,15 @@ export default async (job: bq.Job, done: any): Promise => { }); //#endregion + // Update stats + registerOrFetchInstanceDoc(user.host).then(i => { + Instance.update({ _id: i._id }, { + $set: { + latestRequestReceivedAt: new Date() + } + }); + }); + // アクティビティを処理 try { await perform(user, activity);