@grouparoo/core
Version:
The Grouparoo Core
70 lines (59 loc) • 1.88 kB
text/typescript
import { log } from "actionhero";
import { Run } from "../../models/Run";
import { Import } from "../../models/Import";
import { Export } from "../../models/Export";
import { ExportProcessor } from "../../models/ExportProcessor";
import { Session } from "../../models/Session";
import { OAuthRequest } from "../../models/OAuthRequest";
import { CLSTask } from "../../classes/tasks/clsTask";
export class Sweeper extends CLSTask {
name = "sweeper";
description = "clear old database entries";
frequency = 1000 * 60 * 30; // every half hour
queue = "system";
log(model: string, count: number, days: number) {
if (count === 0) {
return;
}
log(
`[ sweeper ]: deleted ${count} ${model} entries older than ${days} days`
);
}
async runWithinTransaction() {
const limit = 1000;
let count = 0;
let response: { count: number; days: number };
// --- RUNS ---
count = -1;
while (count !== 0) {
response = await Run.sweep(limit);
count = response.count;
this.log("run", response.count, response.days);
}
// --- IMPORTS ---
count = -1;
while (count !== 0) {
response = await Import.sweep(limit);
count = response.count;
this.log("import", response.count, response.days);
}
// --- EXPORTS ---
count = -1;
while (count !== 0) {
response = await Export.sweep(limit);
count = response.count;
this.log("export", response.count, response.days);
}
// --- EXPORT PROCESSORS ---
count = -1;
while (count !== 0) {
count = await ExportProcessor.sweep(limit);
}
// --- SESSIONS ---
response = await Session.sweep();
this.log("session", response.count, response.days);
// OAUTH REQUESTS
response = await OAuthRequest.sweep(limit);
this.log("oAuthRequest", response.count, response.days);
}
}