Improve performance

This commit is contained in:
Douglas Barone 2022-04-20 14:31:38 -04:00
parent 2984f579f4
commit 35a064e42f

View File

@ -26,29 +26,27 @@ async function getOnlineDevices() {
return onlineDevices
}
async function updateDevicesStatus() {
async function updateDevicesStatus(onlineDevices) {
const lastSeenThreshold = subMinutes(new Date(), RECENT_THRESHOLD_IN_MINUTES)
const onlineDevicesMacs = onlineDevices.map(device => device.mac)
const recent = prisma.wifiDevice.updateMany({
where: {
lastSeen: {
gt: lastSeenThreshold
}
lastSeen: { gt: lastSeenThreshold },
status: 'ONLINE',
mac: { notIn: onlineDevicesMacs }
},
data: {
status: 'RECENT'
}
data: { status: 'RECENT' }
})
const offline = prisma.wifiDevice.updateMany({
where: {
lastSeen: {
lte: lastSeenThreshold
}
lastSeen: { lte: lastSeenThreshold },
status: { not: 'OFFLINE' },
mac: { notIn: onlineDevicesMacs }
},
data: {
status: 'OFFLINE'
}
data: { status: 'OFFLINE' }
})
return prisma.$transaction([recent, offline])
@ -172,7 +170,8 @@ function updateDevicesInfo() {
const startTime = performance.now()
const onlineDevices = await getOnlineDevices()
await updateDevicesStatus()
await updateDevicesStatus(onlineDevices)
const endTime = performance.now()