implement purging service envelopes

This commit is contained in:
liamcottle
2024-08-21 00:55:31 +12:00
parent a3242c9055
commit c9049dd603

View File

@ -113,6 +113,11 @@ const optionsList = [
type: Number,
description: "Positions older than this many seconds will be purged from the database.",
},
{
name: "purge-service-envelopes-after-seconds",
type: Number,
description: "Service envelopes older than this many seconds will be purged from the database.",
},
{
name: "purge-text-messages-after-seconds",
type: Number,
@ -171,6 +176,7 @@ const purgeMapReportsAfterSeconds = options["purge-map-reports-after-seconds"] ?
const purgeNeighbourInfosAfterSeconds = options["purge-neighbour-infos-after-seconds"] ?? null;
const purgePowerMetricsAfterSeconds = options["purge-power-metrics-after-seconds"] ?? null;
const purgePositionsAfterSeconds = options["purge-positions-after-seconds"] ?? null;
const purgeServiceEnvelopesAfterSeconds = options["purge-service-envelopes-after-seconds"] ?? null;
const purgeTextMessagesAfterSeconds = options["purge-text-messages-after-seconds"] ?? null;
const purgeTraceroutesAfterSeconds = options["purge-traceroutes-after-seconds"] ?? null;
const purgeWaypointsAfterSeconds = options["purge-waypoints-after-seconds"] ?? null;
@ -205,6 +211,7 @@ if(purgeIntervalSeconds){
await purgeOldNeighbourInfos();
await purgeOldPowerMetrics();
await purgeOldPositions();
await purgeOldServiceEnvelopes();
await purgeOldTextMessages();
await purgeOldTraceroutes();
await purgeOldWaypoints();
@ -393,6 +400,32 @@ async function purgeOldPositions() {
}
/**
* Purges all service envelopes from the database that are older than the configured timeframe.
*/
async function purgeOldServiceEnvelopes() {
// make sure seconds provided
if(!purgeServiceEnvelopesAfterSeconds){
return;
}
// delete all service envelopes that are older than the configured purge time
try {
await prisma.serviceEnvelope.deleteMany({
where: {
created_at: {
// created before x seconds ago
lt: new Date(Date.now() - purgeServiceEnvelopesAfterSeconds * 1000),
},
}
});
} catch(e) {
// do nothing
}
}
/**
* Purges all text messages from the database that are older than the configured timeframe.
*/