Refactor code structure for improved readability and maintainability

This commit is contained in:
jhartworks
2026-09-16 12:41:24 +02:00
parent bfce688f6a
commit 4d8b07fc68
22 changed files with 2670 additions and 96 deletions
+7 -5
View File
@@ -7,6 +7,7 @@ const maxConcurrency = Math.max(1, Math.min(16, Number(process.env.SYMCON_MAX_CO
const sourcePollState = new Map();
const valueCache = new Map();
let polling = false;
let lastKnownGoodStore = { sources: [], datapoints: [] };
const db = mysql.createPool({
host: process.env.DB_HOST || "mariadb",
@@ -67,17 +68,18 @@ async function updateWorkerState(source, status, error = "") {
function readStore() {
if (!existsSync(sourcesFile)) {
return { sources: [], datapoints: [] };
return structuredClone(lastKnownGoodStore);
}
try {
const store = JSON.parse(readFileSync(sourcesFile, "utf8"));
return {
lastKnownGoodStore = {
sources: Array.isArray(store.sources) ? store.sources : [],
datapoints: Array.isArray(store.datapoints) ? store.datapoints : [],
};
return structuredClone(lastKnownGoodStore);
} catch (error) {
console.warn("Quellenkonfiguration konnte nicht gelesen werden:", error.message);
return { sources: [], datapoints: [] };
console.warn("Quellenkonfiguration konnte nicht gelesen werden, letzter gültiger Stand wird verwendet:", error.message);
return structuredClone(lastKnownGoodStore);
}
}
@@ -262,4 +264,4 @@ setInterval(() => pollDueSources().catch((error) => console.error("IP-Symcon Pol
ensureWorkerStateTable()
.then(() => pollDueSources())
.catch((error) => console.error("IP-Symcon Start-Polling fehlgeschlagen:", error.message));
console.log(`SE LTD Symcon Collector gestartet (Intervall-Prüfung ${pollTickMs} ms, Parallelität ${maxConcurrency}).`);
console.log(`SE LTD Symcon Collector gestartet (Intervall-Prüfung ${pollTickMs} ms, Parallelität ${maxConcurrency}).`);