refactor: batch record pings

This commit is contained in:
siiky 2025-06-03 09:44:42 +01:00
parent be06ea5097
commit 1b26150499
4 changed files with 61 additions and 46 deletions

View file

@ -1,27 +1,13 @@
const mem = require('mem')
const { enqueueRecordPing } = require('../machine-loader')
const logger = require('../logger')
const plugins = require('../plugins')
const T = require('../time')
const record = mem(
({ deviceId, deviceTime, model, version, settings }) =>
plugins(settings, deviceId)
.recordPing(deviceTime, version, model)
.catch(logger.error),
{
cacheKey: ({ deviceId }) => deviceId,
maxAge: (3 / 2) * T.minute, // lib/notifier/codes.js
},
)
module.exports = (req, res, next) => {
record({
const record = (req, res, next) => {
enqueueRecordPing({
deviceId: req.deviceId,
deviceTime: req.deviceTime,
last_online: req.deviceTime,
model: req.query.model,
version: req.query.version,
settings: req.settings,
})
next()
}
module.exports = record