diff --git a/src/services/chart/core.ts b/src/services/chart/core.ts index 4a554daa786a1e2496a32c6d446c86adc6dad763..14cbd92802e1e49ac3fdc856719df9bfadfd9449 100644 --- a/src/services/chart/core.ts +++ b/src/services/chart/core.ts @@ -52,7 +52,7 @@ export default abstract class Chart<T extends Record<string, any>> { private static readonly columnDot = '_'; private name: string; - private queue: { + private buffer: { diff: DeepPartial<T>; group: string | null; }[] = []; @@ -330,28 +330,28 @@ export default abstract class Chart<T extends Record<string, any>> { @autobind protected commit(diff: DeepPartial<T>, group: string | null = null): void { - this.queue.push({ + this.buffer.push({ diff, group, }); } @autobind public async save() { - if (this.queue.length === 0) { + if (this.buffer.length === 0) { logger.info(`${this.name}: Write skipped`); return; } - // TODO: å‰ã®æ™‚é–“ã®ãƒã‚°ãŒqueueã«ã‚ã£ãŸå ´åˆã®ãƒãƒ³ãƒ‰ãƒªãƒ³ã‚° + // TODO: å‰ã®æ™‚é–“ã®ãƒã‚°ãŒbufferã«ã‚ã£ãŸå ´åˆã®ãƒãƒ³ãƒ‰ãƒªãƒ³ã‚° // 例ãˆã°ã€save ãŒ20分ã”ã¨ã«è¡Œã‚れるã¨ã—ã¦ã€å‰å›žè¡Œã‚ã‚ŒãŸã®ã¯ 01:50 ã ã£ãŸã¨ã™ã‚‹ã€‚ - // 次㫠save ãŒè¡Œã‚れるã®ã¯ 02:10 ã¨ã„ã†ã“ã¨ã«ãªã‚‹ãŒã€ã‚‚ã— 01:55 ã«æ–°è¦ãƒã‚°ãŒ queue ã«è¿½åŠ ã•ã‚ŒãŸã¨ã™ã‚‹ã¨ã€ + // 次㫠save ãŒè¡Œã‚れるã®ã¯ 02:10 ã¨ã„ã†ã“ã¨ã«ãªã‚‹ãŒã€ã‚‚ã— 01:55 ã«æ–°è¦ãƒã‚°ãŒ buffer ã«è¿½åŠ ã•ã‚ŒãŸã¨ã™ã‚‹ã¨ã€ // ãã®ãƒã‚°ã¯æœ¬æ¥ã¯ 01:00~ ã®ãƒã‚°ã¨ã—ã¦DBã«ä¿å˜ã•ã‚Œã¦æ¬²ã—ã„ã®ã«ã€02:00~ ã®ãƒã‚°æ‰±ã„ã«ãªã£ã¦ã—ã¾ã†ã€‚ // ã“れを回é¿ã™ã‚‹ãŸã‚ã®å®Ÿè£…ã¯è¤‡é›‘ã«ãªã‚Šãã†ãªãŸã‚ã€ä¸€æ—¦ä¿ç•™ã€‚ const update = async (log: Log) => { const finalDiffs = {} as Record<string, number | unknown[]>; - for (const diff of this.queue.filter(q => q.group === log.group).map(q => q.diff)) { + for (const diff of this.buffer.filter(q => q.group === log.group).map(q => q.diff)) { const columns = Chart.convertObjectToFlattenColumns(diff); for (const [k, v] of Object.entries(columns)) { @@ -378,11 +378,11 @@ export default abstract class Chart<T extends Record<string, any>> { logger.info(`${this.name + (log.group ? `:${log.group}` : '')}: Updated`); - // TODO: ã“ã®ä¸€é€£ã®å‡¦ç†ãŒå§‹ã¾ã£ãŸå¾Œã«æ–°ãŸã«queueã«å…¥ã£ãŸã‚‚ã®ã¯æ¶ˆã•ãªã„よã†ã«ã™ã‚‹ - this.queue = this.queue.filter(q => q.group !== log.group); + // TODO: ã“ã®ä¸€é€£ã®å‡¦ç†ãŒå§‹ã¾ã£ãŸå¾Œã«æ–°ãŸã«bufferã«å…¥ã£ãŸã‚‚ã®ã¯æ¶ˆã•ãªã„よã†ã«ã™ã‚‹ + this.buffer = this.buffer.filter(q => q.group !== log.group); }; - const groups = removeDuplicates(this.queue.map(log => log.group)); + const groups = removeDuplicates(this.buffer.map(log => log.group)); await Promise.all(groups.map(group => this.getCurrentLog(group).then(log => update(log)))); }