From ad274f2488dfc70aae1fd9eabc6ea9f237c565f1 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Thu, 25 Jan 2024 04:50:34 -0800 Subject: move migration lock --- lib/migrate.js | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) (limited to 'lib') diff --git a/lib/migrate.js b/lib/migrate.js index 7a649dbf..1425cbac 100644 --- a/lib/migrate.js +++ b/lib/migrate.js @@ -4,19 +4,14 @@ import { archive, db, g, ga, s } from "$lib/db"; import { wait } from "$lib/utils"; let queued = {}; -let processing = {}; +let migrating = {}; async function migrate(id) { if (id) id = id.replace(/\s/g, "").toLowerCase(); - if (processing[id]) await wait(() => !processing[id]); - delete queued[id]; - processing[id] = true; - setTimeout(() => delete processing[id], 10000); - let user = await g(`user:${id}`); if (typeof user === "string") user = await g(`user:${user}`); if (user) { - delete processing[id]; + delete migrating[id]; return user; } @@ -33,6 +28,9 @@ async function migrate(id) { } if (user) { + if (migrating[id]) return; + migrating[id] = true; + let { username } = user; username = username.replace(/\s/g, "").toLowerCase(); l("migrating", username); @@ -107,11 +105,9 @@ async function migrate(id) { warn("failed to migrate", username, e.message, line()); } - delete processing[id]; + delete migrating[id]; return user; } - - delete processing[id]; } let keepMigrating = async () => { -- cgit v1.2.3