perf(backend): reduce db query
This commit is contained in:
parent
3c04fef8d1
commit
384a3bed09
2 changed files with 8 additions and 4 deletions
|
@ -32,6 +32,7 @@
|
|||
- 「UIのアニメーションを減らす」 (`reduceAnimation`) で猫耳を撫でられなくなります
|
||||
|
||||
### Server
|
||||
- サーバーの全体的なパフォーマンスを向上
|
||||
- ノート作成時のパフォーマンスを向上
|
||||
- アンテナのタイムライン取得時のパフォーマンスを向上
|
||||
- チャンネルのタイムライン取得時のパフォーマンスを向上
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import { forwardRef, Inject, Injectable } from '@nestjs/common';
|
||||
import promiseLimit from 'promise-limit';
|
||||
import { In } from 'typeorm';
|
||||
import { DI } from '@/di-symbols.js';
|
||||
import type { PollsRepository, EmojisRepository } from '@/models/index.js';
|
||||
import type { Config } from '@/config.js';
|
||||
|
@ -341,15 +342,17 @@ export class ApNoteService {
|
|||
if (!tags) return [];
|
||||
|
||||
const eomjiTags = toArray(tags).filter(isEmoji);
|
||||
|
||||
const existingEmojis = await this.emojisRepository.findBy({
|
||||
host,
|
||||
name: In(eomjiTags.map(tag => tag.name!.replace(/^:/, '').replace(/:$/, ''))),
|
||||
});
|
||||
|
||||
return await Promise.all(eomjiTags.map(async tag => {
|
||||
const name = tag.name!.replace(/^:/, '').replace(/:$/, '');
|
||||
tag.icon = toSingle(tag.icon);
|
||||
|
||||
const exists = await this.emojisRepository.findOneBy({
|
||||
host,
|
||||
name,
|
||||
});
|
||||
const exists = existingEmojis.find(x => x.name === name);
|
||||
|
||||
if (exists) {
|
||||
if ((tag.updated != null && exists.updatedAt == null)
|
||||
|
|
Loading…
Reference in a new issue