Bugfix: clear working state after timeout
This commit is contained in:
parent
7cbb561030
commit
77f3a85a57
|
@ -147,58 +147,54 @@ async function updateDB(onlineDevices) {
|
||||||
|
|
||||||
function updateDevicesInfo() {
|
function updateDevicesInfo() {
|
||||||
return new Promise(async (resolve, reject) => {
|
return new Promise(async (resolve, reject) => {
|
||||||
if (working) reject('A última atualização ainda não terminou')
|
if (working) return reject('A última atualização ainda não terminou')
|
||||||
else {
|
|
||||||
working = true
|
|
||||||
|
|
||||||
const updateTimeout = setTimeout(() => {
|
working = true
|
||||||
reject('A função atingiu seu tempo limite.')
|
|
||||||
}, TIMEOUT_IN_MILLISECONDS)
|
|
||||||
|
|
||||||
try {
|
const updateTimeout = setTimeout(() => {
|
||||||
const startTime = performance.now()
|
reject('A função atingiu seu tempo limite.')
|
||||||
|
working = false
|
||||||
|
}, TIMEOUT_IN_MILLISECONDS)
|
||||||
|
|
||||||
const onlineDevices = await getOnlineDevices()
|
try {
|
||||||
|
const startTime = performance.now()
|
||||||
|
|
||||||
await updateDevicesStatus()
|
const onlineDevices = await getOnlineDevices()
|
||||||
|
await updateDevicesStatus()
|
||||||
|
await updateDB(onlineDevices)
|
||||||
|
|
||||||
await updateDB(onlineDevices)
|
const endTime = performance.now()
|
||||||
|
|
||||||
const endTime = performance.now()
|
onlineDevices.length > 0
|
||||||
|
? resolve(
|
||||||
|
`${onlineDevices.length} atualizados em ${Math.floor(
|
||||||
|
endTime - startTime
|
||||||
|
)}ms`
|
||||||
|
)
|
||||||
|
: reject('Não há dispositivos conectados no momento.')
|
||||||
|
|
||||||
onlineDevices.length > 0
|
pubsub.publish(USER_PRESENCE_UPDATED, {
|
||||||
? resolve(
|
userPresenceUpdated: onlineDevices.length
|
||||||
`${onlineDevices.length} atualizados em ${Math.floor(
|
})
|
||||||
endTime - startTime
|
|
||||||
)}ms`
|
|
||||||
)
|
|
||||||
: reject('Não há dispositivos conectados no momento.')
|
|
||||||
|
|
||||||
pubsub.publish(USER_PRESENCE_UPDATED, {
|
logSuccess({
|
||||||
userPresenceUpdated: onlineDevices.length
|
tags: ['wifiDevices'],
|
||||||
})
|
message: `Foram atualizados ${
|
||||||
|
onlineDevices.length
|
||||||
|
} dispositivos Wi-Fi em ${((endTime - startTime) / 1000).toFixed(2)}s.`,
|
||||||
|
data: onlineDevices
|
||||||
|
})
|
||||||
|
} catch (e) {
|
||||||
|
logError({
|
||||||
|
tags: ['wifiDevices'],
|
||||||
|
message: `Erro atualizando dispositivos Wi-Fi: ${e.message}`,
|
||||||
|
data: e
|
||||||
|
})
|
||||||
|
|
||||||
logSuccess({
|
reject('Não foi possível atualizar as informações dos dispositivos.')
|
||||||
tags: ['wifiDevices'],
|
} finally {
|
||||||
message: `Foram atualizados ${
|
working = false
|
||||||
onlineDevices.length
|
clearTimeout(updateTimeout)
|
||||||
} dispositivos Wi-Fi em ${((endTime - startTime) / 1000).toFixed(
|
|
||||||
2
|
|
||||||
)}s.`,
|
|
||||||
data: onlineDevices
|
|
||||||
})
|
|
||||||
} catch (e) {
|
|
||||||
logError({
|
|
||||||
tags: ['wifiDevices'],
|
|
||||||
message: `Erro atualizando dispositivos Wi-Fi: ${e.message}`,
|
|
||||||
data: e
|
|
||||||
})
|
|
||||||
|
|
||||||
reject('Não foi possível atualizar as informações dos dispositivos.')
|
|
||||||
} finally {
|
|
||||||
working = false
|
|
||||||
clearTimeout(updateTimeout)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user