diff options
| author | Adam Soltys <[email protected]> | 2024-01-16 16:23:26 +0000 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2024-01-16 16:23:26 +0000 |
| commit | 5d6847e533210f713e181146f2e60aaa51b74150 (patch) | |
| tree | 62070725dcb0570690f7d95b5f7414898d032a26 /lib/migrate.js | |
| parent | 3ce5a255c3a03f4ccdaa18091aec36a6d5b3e226 (diff) | |
| download | coinos-server-5d6847e533210f713e181146f2e60aaa51b74150.tar.gz coinos-server-5d6847e533210f713e181146f2e60aaa51b74150.zip | |
log missing user
Diffstat (limited to 'lib/migrate.js')
| -rw-r--r-- | lib/migrate.js | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/lib/migrate.js b/lib/migrate.js index c1533ec3..bb87a28b 100644 --- a/lib/migrate.js +++ b/lib/migrate.js @@ -1,20 +1,21 @@ import { err, warn, l, line } from "$lib/logging"; import { types } from "$lib/payments"; import { archive, db, g, ga, s } from "$lib/db"; + import { wait } from "$lib/utils"; -let q = {}; -let inProgress = {}; +let queued = {}; +let processing = {}; async function migrate(id) { if (id) id = id.replace(/\s/g, "").toLowerCase(); - if (inProgress[id]) return; - else delete q[id]; - inProgress[id] = true; + if (processing[id]) await wait(() => !processing[id]); + delete queued[id]; + processing[id] = true; let user = await g(`user:${id}`); if (typeof user === "string") user = await g(`user:${user}`); if (user) { - delete inProgress[id]; + delete processing[id]; return user; } @@ -75,7 +76,7 @@ async function migrate(id) { if (!p) continue; if (p.type === types.internal && p.ref) { let recipient = await g(`user:${p.ref}`); - if (!recipient) q[p.ref] = true; + if (!recipient) queued[p.ref] = true; } await multi @@ -108,19 +109,19 @@ async function migrate(id) { return user; } - delete inProgress[id]; + delete processing[id]; } let keepMigrating = async () => { try { - if (Object.keys(q).length) { - await migrate(Object.keys(q)[0]); + if (Object.keys(queued).length) { + await migrate(Object.keys(queued)[0]); } } catch (e) { err("problem migrating", e.message); } - setTimeout(keepMigrating, 100); + setTimeout(keepMigrating, 1000); }; keepMigrating(); |
