summaryrefslogtreecommitdiff
path: root/src/misc/fetch-meta.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/misc/fetch-meta.ts')
-rw-r--r--src/misc/fetch-meta.ts18
1 files changed, 16 insertions, 2 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);