diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2019-04-24 08:11:19 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2019-04-24 08:11:19 +0900 |
| commit | 5aa5896b221ba73773a370fc01d1a9235eca33dd (patch) | |
| tree | 6bc6b7ddae1575229a21cb6370678d1a778d796e /src/misc | |
| parent | Increase reaction column length (diff) | |
| download | misskey-5aa5896b221ba73773a370fc01d1a9235eca33dd.tar.gz misskey-5aa5896b221ba73773a370fc01d1a9235eca33dd.tar.bz2 misskey-5aa5896b221ba73773a370fc01d1a9235eca33dd.zip | |
Cache meta
Diffstat (limited to 'src/misc')
| -rw-r--r-- | src/misc/fetch-meta.ts | 18 | ||||
| -rw-r--r-- | src/misc/fetch-proxy-account.ts | 2 | ||||
| -rw-r--r-- | src/misc/reaction-lib.ts | 2 |
3 files changed, 18 insertions, 4 deletions
diff --git a/src/misc/fetch-meta.ts b/src/misc/fetch-meta.ts index 800f0b9e63..db82adb2a4 100644 --- a/src/misc/fetch-meta.ts +++ b/src/misc/fetch-meta.ts @@ -1,7 +1,11 @@ import { Meta } from '../models/entities/meta'; import { getConnection } from 'typeorm'; -export default async function(): Promise<Meta> { +let cache: Meta; + +export async function fetchMeta(noCache = false): Promise<Meta> { + if (!noCache && cache) return cache; + return await getConnection().transaction(async transactionalEntityManager => { // バグでレコードが複数出来てしまっている可能性があるので新しいIDを優先する const meta = await transactionalEntityManager.findOne(Meta, { @@ -11,11 +15,21 @@ export default async function(): Promise<Meta> { }); if (meta) { + cache = meta; return meta; } else { - return await transactionalEntityManager.save(Meta, { + const saved = await transactionalEntityManager.save(Meta, { id: 'x' }) as Meta; + + cache = saved; + return saved; } }); } + +setInterval(() => { + fetchMeta(true).then(meta => { + cache = meta; + }); +}, 5000); diff --git a/src/misc/fetch-proxy-account.ts b/src/misc/fetch-proxy-account.ts index 17b021e91e..075873091c 100644 --- a/src/misc/fetch-proxy-account.ts +++ b/src/misc/fetch-proxy-account.ts @@ -1,4 +1,4 @@ -import fetchMeta from './fetch-meta'; +import { fetchMeta } from './fetch-meta'; import { ILocalUser } from '../models/entities/user'; import { Users } from '../models'; import { ensure } from '../prelude/ensure'; diff --git a/src/misc/reaction-lib.ts b/src/misc/reaction-lib.ts index 008991454b..ced90ce78f 100644 --- a/src/misc/reaction-lib.ts +++ b/src/misc/reaction-lib.ts @@ -1,5 +1,5 @@ import { emojiRegex } from './emoji-regex'; -import fetchMeta from './fetch-meta'; +import { fetchMeta } from './fetch-meta'; import { Emojis } from '../models'; const basic10: Record<string, string> = { |