Skip to content

Commit

Permalink
Merge pull request #3380 from chakflying/experiment/incremental-vacuu…
Browse files Browse the repository at this point in the history
…m-job

Feat: Run incremental_vacuum and optimize
  • Loading branch information
louislam committed Jul 8, 2023
2 parents 80b5578 + 9954ba8 commit cdb38d4
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 0 deletions.
7 changes: 7 additions & 0 deletions server/jobs.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
const { UptimeKumaServer } = require("./uptime-kuma-server");
const { clearOldData } = require("./jobs/clear-old-data");
const { incrementalVacuum } = require("./jobs/incremental-vacuum");
const Cron = require("croner");

const jobs = [
Expand All @@ -9,6 +10,12 @@ const jobs = [
jobFunc: clearOldData,
croner: null,
},
{
name: "incremental-vacuum",
interval: "*/5 * * * *",
jobFunc: incrementalVacuum,
croner: null,
}
];

/**
Expand Down
2 changes: 2 additions & 0 deletions server/jobs/clear-old-data.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ const clearOldData = async () => {
"DELETE FROM heartbeat WHERE time < DATETIME('now', '-' || ? || ' days') ",
[ parsedPeriod ]
);

await R.exec("PRAGMA optimize;");
} catch (e) {
log.error("clearOldData", `Failed to clear old data: ${e.message}`);
}
Expand Down
21 changes: 21 additions & 0 deletions server/jobs/incremental-vacuum.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
const { R } = require("redbean-node");
const { log } = require("../../src/util");

/**
* Run incremental_vacuum and checkpoint the WAL.
* @return {Promise<void>} A promise that resolves when the process is finished.
*/

const incrementalVacuum = async () => {
try {
log.debug("incrementalVacuum", "Running incremental_vacuum and wal_checkpoint(PASSIVE)...");
await R.exec("PRAGMA incremental_vacuum(200)");
await R.exec("PRAGMA wal_checkpoint(PASSIVE)");
} catch (e) {
log.error("incrementalVacuum", `Failed: ${e.message}`);
}
};

module.exports = {
incrementalVacuum,
};

0 comments on commit cdb38d4

Please sign in to comment.