📝 "Fix typo in FEHLER_BEHOBEN.md and related files (#42)" 🐛

This commit is contained in:
2025-05-30 20:09:21 +02:00
parent bb54643d18
commit f45fcc5d0e
5 changed files with 522 additions and 111 deletions

View File

@@ -4537,6 +4537,44 @@ if __name__ == "__main__":
except Exception as e:
app_logger.error(f"Fehler beim Stoppen des Schedulers: {str(e)}")
# ===== DATENBANKVERBINDUNGEN ORDNUNGSGEMÄSS SCHLIESSEN =====
app_logger.info("💾 Führe Datenbank-Cleanup durch...")
try:
from models import get_db_session, create_optimized_engine
from sqlalchemy import text
# WAL-Checkpoint ausführen um .shm und .wal Dateien zu bereinigen
engine = create_optimized_engine()
with engine.connect() as conn:
# Vollständiger WAL-Checkpoint (TRUNCATE-Modus)
app_logger.info("📝 Führe WAL-Checkpoint durch...")
result = conn.execute(text("PRAGMA wal_checkpoint(TRUNCATE)")).fetchone()
if result:
app_logger.info(f"WAL-Checkpoint abgeschlossen: {result[1]} Seiten übertragen, {result[2]} Seiten zurückgesetzt")
# Alle pending Transaktionen committen
conn.commit()
# Journal-Mode zu DELETE wechseln (entfernt .wal/.shm Dateien)
app_logger.info("📁 Schalte Journal-Mode um...")
conn.execute(text("PRAGMA journal_mode=DELETE"))
# Optimize und Vacuum für sauberen Zustand
conn.execute(text("PRAGMA optimize"))
conn.execute(text("VACUUM"))
conn.commit()
# Engine-Connection-Pool schließen
engine.dispose()
app_logger.info("✅ Datenbank-Cleanup abgeschlossen - WAL-Dateien sollten verschwunden sein")
except Exception as db_error:
app_logger.error(f"❌ Fehler beim Datenbank-Cleanup: {str(db_error)}")
app_logger.info("✅ Shutdown abgeschlossen")
sys.exit(0)
except Exception as e:
@@ -4598,6 +4636,35 @@ if __name__ == "__main__":
atexit.register(cleanup_queue_manager)
# ===== DATENBANK-CLEANUP BEIM PROGRAMMENDE =====
def cleanup_database():
"""Führt Datenbank-Cleanup beim normalen Programmende aus."""
try:
app_logger.info("💾 Führe finales Datenbank-Cleanup durch...")
from models import create_optimized_engine
from sqlalchemy import text
engine = create_optimized_engine()
with engine.connect() as conn:
# WAL-Checkpoint für sauberes Beenden
result = conn.execute(text("PRAGMA wal_checkpoint(TRUNCATE)")).fetchone()
if result and result[1] > 0:
app_logger.info(f"Final WAL-Checkpoint: {result[1]} Seiten übertragen")
# Journal-Mode umschalten um .wal/.shm Dateien zu entfernen
conn.execute(text("PRAGMA journal_mode=DELETE"))
conn.commit()
# Connection-Pool ordnungsgemäß schließen
engine.dispose()
app_logger.info("✅ Finales Datenbank-Cleanup abgeschlossen")
except Exception as e:
app_logger.error(f"❌ Fehler beim finalen Datenbank-Cleanup: {str(e)}")
atexit.register(cleanup_database)
except Exception as e:
app_logger.error(f"❌ Fehler beim Starten des Queue-Managers: {str(e)}")
else: