From 72d5d9d17ab8a607b8430130639b03139663bea1 Mon Sep 17 00:00:00 2001 From: Dragory <2606411+Dragory@users.noreply.github.com> Date: Sat, 9 Oct 2021 12:18:19 +0300 Subject: [PATCH] chore: move saved message clean-up loop with other global loops --- backend/src/data/GuildSavedMessages.ts | 15 --------------- backend/src/data/loops/savedMessageCleanupLoop.ts | 14 ++++++++++++++ backend/src/index.ts | 3 +++ 3 files changed, 17 insertions(+), 15 deletions(-) create mode 100644 backend/src/data/loops/savedMessageCleanupLoop.ts diff --git a/backend/src/data/GuildSavedMessages.ts b/backend/src/data/GuildSavedMessages.ts index 2747b7b1..15a5c319 100644 --- a/backend/src/data/GuildSavedMessages.ts +++ b/backend/src/data/GuildSavedMessages.ts @@ -2,26 +2,11 @@ import { GuildChannel, Message } from "discord.js"; import moment from "moment-timezone"; import { getRepository, Repository } from "typeorm"; import { QueryDeepPartialEntity } from "typeorm/query-builder/QueryPartialEntity"; -import { isAPI } from "../globals"; import { QueuedEventEmitter } from "../QueuedEventEmitter"; -import { MINUTES, SECONDS } from "../utils"; import { BaseGuildRepository } from "./BaseGuildRepository"; -import { cleanupMessages } from "./cleanup/messages"; import { ISavedMessageData, SavedMessage } from "./entities/SavedMessage"; import { buildEntity } from "./buildEntity"; -if (!isAPI()) { - const CLEANUP_INTERVAL = 5 * MINUTES; - - async function cleanup() { - await cleanupMessages(); - setTimeout(cleanup, CLEANUP_INTERVAL); - } - - // Start first cleanup 30 seconds after startup - setTimeout(cleanup, 30 * SECONDS); -} - export class GuildSavedMessages extends BaseGuildRepository { private messages: Repository; protected toBePermanent: Set; diff --git a/backend/src/data/loops/savedMessageCleanupLoop.ts b/backend/src/data/loops/savedMessageCleanupLoop.ts new file mode 100644 index 00000000..b62e520c --- /dev/null +++ b/backend/src/data/loops/savedMessageCleanupLoop.ts @@ -0,0 +1,14 @@ +import { MINUTES } from "../../utils"; +import { cleanupMessages } from "../cleanup/messages"; + +const LOOP_INTERVAL = 5 * MINUTES; + +export async function runSavedMessageCleanupLoop() { + try { + console.log("[SAVED MESSAGE CLEANUP LOOP] Deleting old/deleted messages from the database"); + const deleted = await cleanupMessages(); + console.log(`[SAVED MESSAGE CLEANUP LOOP] Deleted ${deleted} old/deleted messages from the database`); + } finally { + setTimeout(() => runSavedMessageCleanupLoop(), LOOP_INTERVAL); + } +} diff --git a/backend/src/index.ts b/backend/src/index.ts index 142e3a07..29265ec6 100644 --- a/backend/src/index.ts +++ b/backend/src/index.ts @@ -29,6 +29,7 @@ import { runUpcomingScheduledPostsLoop } from "./data/loops/upcomingScheduledPos import { runExpiringTempbansLoop } from "./data/loops/expiringTempbansLoop"; import { runExpiringVCAlertsLoop } from "./data/loops/expiringVCAlertsLoop"; import { runExpiredArchiveDeletionLoop } from "./data/loops/expiredArchiveDeletionLoop"; +import { runSavedMessageCleanupLoop } from "./data/loops/savedMessageCleanupLoop"; if (!process.env.KEY) { // tslint:disable-next-line:no-console @@ -348,6 +349,8 @@ connect().then(async () => { runExpiringVCAlertsLoop(); await sleep(10 * SECONDS); runExpiredArchiveDeletionLoop(); + await sleep(10 * SECONDS); + runSavedMessageCleanupLoop(); }); bot.initialize();