@grouparoo/core
Version:
The Grouparoo Core
65 lines (64 loc) • 2.33 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Sweeper = void 0;
const actionhero_1 = require("actionhero");
const Run_1 = require("../../models/Run");
const Import_1 = require("../../models/Import");
const Export_1 = require("../../models/Export");
const ExportProcessor_1 = require("../../models/ExportProcessor");
const Session_1 = require("../../models/Session");
const OAuthRequest_1 = require("../../models/OAuthRequest");
const clsTask_1 = require("../../classes/tasks/clsTask");
class Sweeper extends clsTask_1.CLSTask {
constructor() {
super(...arguments);
this.name = "sweeper";
this.description = "clear old database entries";
this.frequency = 1000 * 60 * 30; // every half hour
this.queue = "system";
}
log(model, count, days) {
if (count === 0) {
return;
}
(0, actionhero_1.log)(`[ sweeper ]: deleted ${count} ${model} entries older than ${days} days`);
}
async runWithinTransaction() {
const limit = 1000;
let count = 0;
let response;
// --- RUNS ---
count = -1;
while (count !== 0) {
response = await Run_1.Run.sweep(limit);
count = response.count;
this.log("run", response.count, response.days);
}
// --- IMPORTS ---
count = -1;
while (count !== 0) {
response = await Import_1.Import.sweep(limit);
count = response.count;
this.log("import", response.count, response.days);
}
// --- EXPORTS ---
count = -1;
while (count !== 0) {
response = await Export_1.Export.sweep(limit);
count = response.count;
this.log("export", response.count, response.days);
}
// --- EXPORT PROCESSORS ---
count = -1;
while (count !== 0) {
count = await ExportProcessor_1.ExportProcessor.sweep(limit);
}
// --- SESSIONS ---
response = await Session_1.Session.sweep();
this.log("session", response.count, response.days);
// OAUTH REQUESTS
response = await OAuthRequest_1.OAuthRequest.sweep(limit);
this.log("oAuthRequest", response.count, response.days);
}
}
exports.Sweeper = Sweeper;