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