Improve performance
This commit is contained in:
parent
2984f579f4
commit
35a064e42f
|
@ -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()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user