aboutsummaryrefslogtreecommitdiffstats
path: root/lib/migrate.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/migrate.js')
-rw-r--r--lib/migrate.js16
1 files changed, 6 insertions, 10 deletions
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 () => {