diff options
| author | Adam Soltys <[email protected]> | 2024-01-25 04:50:34 -0800 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2024-01-25 04:50:43 -0800 |
| commit | ad274f2488dfc70aae1fd9eabc6ea9f237c565f1 (patch) | |
| tree | e3b289d2a53c362fc767717c205bf7fca5cde6cb /lib/migrate.js | |
| parent | 56d32950584c88d11c3eeaa1d08f46fee99134ba (diff) | |
| download | coinos-server-ad274f2488dfc70aae1fd9eabc6ea9f237c565f1.tar.gz coinos-server-ad274f2488dfc70aae1fd9eabc6ea9f237c565f1.zip | |
move migration lock
Diffstat (limited to 'lib/migrate.js')
| -rw-r--r-- | lib/migrate.js | 16 |
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 () => { |
