summaryrefslogtreecommitdiff
path: root/src/misc
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2019-04-24 08:11:19 +0900
committersyuilo <syuilotan@yahoo.co.jp>2019-04-24 08:11:19 +0900
commit5aa5896b221ba73773a370fc01d1a9235eca33dd (patch)
tree6bc6b7ddae1575229a21cb6370678d1a778d796e /src/misc
parentIncrease reaction column length (diff)
downloadmisskey-5aa5896b221ba73773a370fc01d1a9235eca33dd.tar.gz
misskey-5aa5896b221ba73773a370fc01d1a9235eca33dd.tar.bz2
misskey-5aa5896b221ba73773a370fc01d1a9235eca33dd.zip
Cache meta
Diffstat (limited to 'src/misc')
-rw-r--r--src/misc/fetch-meta.ts18
-rw-r--r--src/misc/fetch-proxy-account.ts2
-rw-r--r--src/misc/reaction-lib.ts2
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> = {