From 98e8bdf96e6181e5cb15431d90d313a744016d88 Mon Sep 17 00:00:00 2001 From: ISA Date: Thu, 5 Sep 2024 15:26:42 +0200 Subject: [PATCH] Version 1.0.1.6 mysqlPool.js configuration is better, but can be better, check MySQL Workbench Connections --- utils/mysqlPool.js | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/utils/mysqlPool.js b/utils/mysqlPool.js index 266a6ecdf..80b5f98ef 100644 --- a/utils/mysqlPool.js +++ b/utils/mysqlPool.js @@ -1,5 +1,4 @@ import mysql from "mysql2/promise"; - // Variablen für den Singleton-Pool let cachedPool; let connectionCount = 0; // Zähler für die aktiven Verbindungen @@ -13,28 +12,41 @@ function getPool() { password: process.env.DB_PASSWORD, database: process.env.DB_NAME, port: process.env.DB_PORT, - connectionLimit: 10, // Setze ein Limit für gleichzeitige Verbindungen + connectionLimit: 20, // Setze ein Limit für gleichzeitige Verbindungen waitForConnections: true, - queueLimit: 0, // Unbegrenzte Warteschlange für Verbindungen + queueLimit: 10, // Warteschlangenlimit für Verbindungen + connectTimeout: 5000, // Timeout für Verbindungsversuche (5 Sekunden) + acquireTimeout: 10000, // Timeout für Verbindungsanforderungen aus dem Pool (10 Sekunden) + idleTimeout: 60000, // 1 Minute }); // Ereignisse für das Protokollieren der Verbindungsstatistiken cachedPool.on("acquire", () => { connectionCount++; - console.log("Connection acquired. Active connections: ", connectionCount); + console.log(`[ACQUIRE] Active connections: ${connectionCount}`); }); cachedPool.on("release", () => { connectionCount--; - console.log("Connection released. Active connections: ", connectionCount); + console.log(`[RELEASE] Active connections: ${connectionCount}`); }); cachedPool.on("enqueue", () => { - console.log("Waiting for available connection slot."); + console.log(`[ENQUEUE] Waiting for available connection slot.`); }); } return cachedPool; } +// Optionale Funktion zum Schließen aller Verbindungen im Pool (manuell aufzurufen) +export function closePool() { + if (cachedPool) { + cachedPool.end(() => { + console.log("All pool connections closed."); + }); + cachedPool = null; // Setze den Pool auf null, um sicherzustellen, dass er neu erstellt wird, falls benötigt. + } +} + export default getPool;