fix: on exit, dont write analytics data on all nodes

if you are running 4 nodebbs each one was calling writeData which could trigger duplicate key errors
This commit is contained in:
Barış Soner Uşaklı
2026-03-27 16:45:20 -04:00
parent 4b503db497
commit 6c4e928482
2 changed files with 10 additions and 6 deletions

View File

@@ -38,11 +38,7 @@ Analytics.init = async function () {
runOnAllNodes: true,
onTick: async () => {
if (Analytics.pause) return;
publishLocalAnalytics();
if (runJobs) {
await sleep(2000);
await Analytics.writeData();
}
await Analytics.writeLocalData();
},
});
@@ -63,6 +59,14 @@ Analytics.init = async function () {
}
};
Analytics.writeLocalData = async function () {
publishLocalAnalytics();
if (runJobs) {
await sleep(2000);
await Analytics.writeData();
}
};
function publishLocalAnalytics() {
pubsub.publish('analytics:publish', {
local: local,

View File

@@ -149,7 +149,7 @@ async function shutdown(code) {
try {
await require('./webserver').destroy();
winston.info('[app] Web server closed to connections.');
await require('./analytics').writeData();
await require('./analytics').writeLocalData();
winston.info('[app] Live analytics saved.');
const db = require('./database');
await db.delete('locks');