Expire old entries for MariaDB/MySQL

KJ7ICE committed Jun 26, 2022 at 17:00 UTC 587bdffd17ab28b83f76978c6f1e6690387a926a
1 file changed +7 -1
db.js
+7 -1
@@ -109,7 +109,13 @@ module.exports.CreateDB = function (parent, func) {
109 obj.eventsfile.remove({ time: { '$lt': new Date(Date.now() - (expireEventsSeconds * 1000)) } }, { multi: true }); // Force delete older events
110 obj.powerfile.remove({ time: { '$lt': new Date(Date.now() - (expirePowerEventsSeconds * 1000)) } }, { multi: true }); // Force delete older events
111 obj.serverstatsfile.remove({ time: { '$lt': new Date(Date.now() - (expireServerStatsSeconds * 1000)) } }, { multi: true }); // Force delete older events
112 + } else if ((obj.databaseType == 4) || (obj.databaseType == 5)) { // MariaDB or MySQL
113 + sqlDbQuery('DELETE FROM events WHERE time < ?', [new Date(Date.now() - (expireEventsSeconds * 1000))], function (doc, err) { }); // Delete events older than expireEventsSeconds
114 + sqlDbQuery('DELETE FROM power WHERE time < ?', [new Date(Date.now() - (expirePowerEventsSeconds * 1000))], function (doc, err) { }); // Delete events older than expirePowerSeconds
115 + sqlDbQuery('DELETE FROM serverstats WHERE expire < ?', [new Date()], function (doc, err) { }); // Delete events where expiration date is in the past
116 + sqlDbQuery('DELETE FROM smbios WHERE expire < ?', [new Date()], function (doc, err) { }); // Delete events where expiration date is in the past
117 }
118 +
119 obj.removeInactiveDevices();
120 }
121
@@ -1471,7 +1477,7 @@ module.exports.CreateDB = function (parent, func) {
1477
1478 // Database actions on the Server Stats collection
1479 obj.SetServerStats = function (data, func) { sqlDbQuery('REPLACE INTO serverstats VALUE (?, ?, ?)', [data.time, data.expire, JSON.stringify(data)], func); };
1474 - obj.GetServerStats = function (hours, func) { var t = new Date(); t.setTime(t.getTime() - (60 * 60 * 1000 * hours)); sqlDbQuery('SELECT doc FROM serverstats WHERE time > ?', [t], func); }; // TODO: Expire old entries
1480 + obj.GetServerStats = function (hours, func) { var t = new Date(); t.setTime(t.getTime() - (60 * 60 * 1000 * hours)); sqlDbQuery('SELECT doc FROM serverstats WHERE time > ?', [t], func); };
1481
1482 // Read a configuration file from the database
1483 obj.getConfigFile = function (path, func) { obj.Get('cfile/' + path, func); }