Sequencialize upserts
This commit is contained in:
parent
1f90ea6cca
commit
26bcb56626
|
@ -10,6 +10,7 @@ import jwt from 'jsonwebtoken'
|
|||
import { pubsub, AUTH_UPDATED } from '../pubsub'
|
||||
import { logError, logInfo, logSuccess, logWarning } from '../lib/logger'
|
||||
|
||||
import { performance } from 'perf_hooks'
|
||||
class User {
|
||||
constructor(username) {
|
||||
this.username = username
|
||||
|
@ -378,21 +379,36 @@ class User {
|
|||
message: 'Importando usuários para o Banco de Dados local'
|
||||
})
|
||||
|
||||
await Promise.all(
|
||||
allAdUsers.map(async user =>
|
||||
prisma.user.upsert({
|
||||
where: {
|
||||
sAMAccountName: user.sAMAccountName
|
||||
},
|
||||
update: user,
|
||||
create: user
|
||||
})
|
||||
)
|
||||
)
|
||||
const startTime = performance.now()
|
||||
|
||||
// Do not promise.all, because it freezes the app
|
||||
for (const [index, user] of allAdUsers.entries()) {
|
||||
const dbUser = await prisma.user.upsert({
|
||||
where: {
|
||||
sAMAccountName: user.sAMAccountName
|
||||
},
|
||||
update: user,
|
||||
create: user
|
||||
})
|
||||
|
||||
logSuccess({
|
||||
message: `Importado ${index + 1}/${allAdUsers.length} (${
|
||||
user.sAMAccountName
|
||||
}) ${user.displayName}`,
|
||||
data: dbUser
|
||||
})
|
||||
}
|
||||
|
||||
const endTime = performance.now()
|
||||
|
||||
logSuccess({
|
||||
tags: ['user', 'AD'],
|
||||
message: `${allAdUsers.length} usuários importados do Active Directory`
|
||||
message: `${
|
||||
allAdUsers.length
|
||||
} usuários importados do Active Directory em ${(
|
||||
(endTime - startTime) /
|
||||
1000
|
||||
).toFixed(2)}s`
|
||||
})
|
||||
|
||||
return allAdUsers.length
|
||||
|
|
Loading…
Reference in New Issue
Block a user