diff --git a/apps/crons/README.md b/apps/crons/README.md index a2ae543..2cd612b 100644 --- a/apps/crons/README.md +++ b/apps/crons/README.md @@ -31,3 +31,9 @@ Unban users that have invalid strikes. > Runs every day at 16:00. Send an email to notify of new feedbacks. + +## Delete expired kv entries + +> Runs every day at 00:00. + +Delete kv entries that have expired. diff --git a/apps/crons/src/index.ts b/apps/crons/src/index.ts index 33ebf28..d28d52d 100644 --- a/apps/crons/src/index.ts +++ b/apps/crons/src/index.ts @@ -111,4 +111,16 @@ kroner.at("0 16 * * *", async (c) => { await c.vars.email.send(to, subject, body); }); +kroner.at("0 0 1 1 *", async (c) => { + const keys = await c.vars.db.selectFrom("kv").selectAll().execute(); + + for (const key of keys) { + const expiration = key.ttl?.getTime(); + if (expiration && expiration < Date.now()) { + await c.vars.db.deleteFrom("kv").where("key", "=", key.key).execute(); + Logger.info(`Deleted kv entry: ${key.key}`); + } + } +}); + export default kroner;