diff --git a/packages/core/src/database/storage.js b/packages/core/src/database/storage.js index 6f027f45d..f49a91d61 100644 --- a/packages/core/src/database/storage.js +++ b/packages/core/src/database/storage.js @@ -48,6 +48,10 @@ export default class Storage { return this.storage.remove(key); } + removeMulti(...keys) { + return this.storage.removeMulti(...keys); + } + getAllKeys() { return this.storage.getAllKeys(); } diff --git a/packages/core/src/logger.js b/packages/core/src/logger.js index 46301c236..de6891f0a 100644 --- a/packages/core/src/logger.js +++ b/packages/core/src/logger.js @@ -96,12 +96,17 @@ class DatabaseLogWriter { async rotate() { const logKeys = (await this.storage.getAllKeys()).sort(); + const keysToRemove = []; for (let key of logKeys) { const keyParts = key.split(":"); if (keyParts.length === 1 || parseInt(keyParts[1]) < Date.now() - WEEK) { - await this.storage.remove(key); + keysToRemove.push(key); } } + + if (keysToRemove.length) { + await this.storage.removeMulti(...keysToRemove); + } } } @@ -137,9 +142,7 @@ class DatabaseLogManager { async clear() { const logKeys = await this.storage.getAllKeys(); - for (const key of logKeys) { - await this.storage.remove(key); - } + await this.storage.removeMulti(...logKeys); } async delete(key) {