summaryrefslogtreecommitdiff
path: root/packages/backend/src/core/chart
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2023-10-16 10:45:22 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2023-10-16 10:45:22 +0900
commit1fa1d316969de15d6aaef1dbf0a0b95aec30e377 (patch)
treebacefb9f8dbc2cc18d8c775cdd0572263b4e11ef /packages/backend/src/core/chart
parentUpdate CHANGELOG.md (diff)
downloadsharkey-1fa1d316969de15d6aaef1dbf0a0b95aec30e377.tar.gz
sharkey-1fa1d316969de15d6aaef1dbf0a0b95aec30e377.tar.bz2
sharkey-1fa1d316969de15d6aaef1dbf0a0b95aec30e377.zip
perf(backend): createdAtをidから取得するように & 無駄なDateインスタンスの生成を避けるように
Diffstat (limited to 'packages/backend/src/core/chart')
-rw-r--r--packages/backend/src/core/chart/charts/active-users.ts19
1 files changed, 11 insertions, 8 deletions
diff --git a/packages/backend/src/core/chart/charts/active-users.ts b/packages/backend/src/core/chart/charts/active-users.ts
index 55da1469e5..f0918e059c 100644
--- a/packages/backend/src/core/chart/charts/active-users.ts
+++ b/packages/backend/src/core/chart/charts/active-users.ts
@@ -9,6 +9,7 @@ import { AppLockService } from '@/core/AppLockService.js';
import type { MiUser } from '@/models/User.js';
import { DI } from '@/di-symbols.js';
import { bindThis } from '@/decorators.js';
+import { IdService } from '@/core/IdService.js';
import Chart from '../core.js';
import { ChartLoggerService } from '../ChartLoggerService.js';
import { name, schema } from './entities/active-users.js';
@@ -29,6 +30,7 @@ export default class ActiveUsersChart extends Chart<typeof schema> { // eslint-d
private appLockService: AppLockService,
private chartLoggerService: ChartLoggerService,
+ private idService: IdService,
) {
super(db, (k) => appLockService.getChartInsertLock(k), chartLoggerService.logger, name, schema);
}
@@ -42,20 +44,21 @@ export default class ActiveUsersChart extends Chart<typeof schema> { // eslint-d
}
@bindThis
- public async read(user: { id: MiUser['id'], host: null, createdAt: MiUser['createdAt'] }): Promise<void> {
+ public async read(user: { id: MiUser['id'], host: null }): Promise<void> {
+ const createdAt = this.idService.parse(user.id).date;
await this.commit({
'read': [user.id],
- 'registeredWithinWeek': (Date.now() - user.createdAt.getTime() < week) ? [user.id] : [],
- 'registeredWithinMonth': (Date.now() - user.createdAt.getTime() < month) ? [user.id] : [],
- 'registeredWithinYear': (Date.now() - user.createdAt.getTime() < year) ? [user.id] : [],
- 'registeredOutsideWeek': (Date.now() - user.createdAt.getTime() > week) ? [user.id] : [],
- 'registeredOutsideMonth': (Date.now() - user.createdAt.getTime() > month) ? [user.id] : [],
- 'registeredOutsideYear': (Date.now() - user.createdAt.getTime() > year) ? [user.id] : [],
+ 'registeredWithinWeek': (Date.now() - createdAt.getTime() < week) ? [user.id] : [],
+ 'registeredWithinMonth': (Date.now() - createdAt.getTime() < month) ? [user.id] : [],
+ 'registeredWithinYear': (Date.now() - createdAt.getTime() < year) ? [user.id] : [],
+ 'registeredOutsideWeek': (Date.now() - createdAt.getTime() > week) ? [user.id] : [],
+ 'registeredOutsideMonth': (Date.now() - createdAt.getTime() > month) ? [user.id] : [],
+ 'registeredOutsideYear': (Date.now() - createdAt.getTime() > year) ? [user.id] : [],
});
}
@bindThis
- public async write(user: { id: MiUser['id'], host: null, createdAt: MiUser['createdAt'] }): Promise<void> {
+ public async write(user: { id: MiUser['id'], host: null }): Promise<void> {
await this.commit({
'write': [user.id],
});