import mysql from "mysql2/promise"; // Variablen für den Singleton-Pool let cachedPool; let connectionCount = 0; // Zähler für die aktiven Verbindungen // Funktion zum Abrufen des Pools function getPool() { if (!cachedPool) { cachedPool = mysql.createPool({ host: process.env.DB_HOST, user: process.env.DB_USER, password: process.env.DB_PASSWORD, database: process.env.DB_NAME, port: process.env.DB_PORT, connectionLimit: 10, // Setze ein Limit für gleichzeitige Verbindungen waitForConnections: true, queueLimit: 0, // Unbegrenzte Warteschlange für Verbindungen }); // Ereignisse für das Protokollieren der Verbindungsstatistiken cachedPool.on("acquire", () => { connectionCount++; console.log("Connection acquired. Active connections: ", connectionCount); }); cachedPool.on("release", () => { connectionCount--; console.log("Connection released. Active connections: ", connectionCount); }); cachedPool.on("enqueue", () => { console.log("Waiting for available connection slot."); }); } return cachedPool; } export default getPool;