Refactor code structure for improved readability and maintainability
This commit is contained in:
@@ -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}).`);
|
||||
|
||||
Reference in New Issue
Block a user