"Refactor database shm files for improved performance (feat)"
This commit is contained in:
@@ -23,13 +23,46 @@ from models import init_database, create_initial_admin, User, Printer, Job, Stat
|
|||||||
from utils.logging_config import setup_logging, get_logger, measure_execution_time, log_startup_info, debug_request, debug_response
|
from utils.logging_config import setup_logging, get_logger, measure_execution_time, log_startup_info, debug_request, debug_response
|
||||||
from utils.job_scheduler import JobScheduler, get_job_scheduler
|
from utils.job_scheduler import JobScheduler, get_job_scheduler
|
||||||
from utils.queue_manager import start_queue_manager, stop_queue_manager, get_queue_manager
|
from utils.queue_manager import start_queue_manager, stop_queue_manager, get_queue_manager
|
||||||
from config.settings import SECRET_KEY, UPLOAD_FOLDER, ALLOWED_EXTENSIONS, ENVIRONMENT, SESSION_LIFETIME
|
from config.settings import SECRET_KEY, UPLOAD_FOLDER, ALLOWED_EXTENSIONS, ENVIRONMENT, SESSION_LIFETIME, SCHEDULER_ENABLED, SCHEDULER_INTERVAL
|
||||||
|
|
||||||
# Blueprints importieren
|
# Blueprints importieren
|
||||||
from blueprints.guest import guest_blueprint
|
from blueprints.guest import guest_blueprint
|
||||||
from blueprints.calendar import calendar_blueprint
|
from blueprints.calendar import calendar_blueprint
|
||||||
from blueprints.users import users_blueprint
|
from blueprints.users import users_blueprint
|
||||||
|
|
||||||
|
# Scheduler importieren falls verfügbar
|
||||||
|
try:
|
||||||
|
from utils.job_scheduler import scheduler
|
||||||
|
except ImportError:
|
||||||
|
scheduler = None
|
||||||
|
|
||||||
|
# SSL-Kontext importieren falls verfügbar
|
||||||
|
try:
|
||||||
|
from utils.ssl_config import get_ssl_context
|
||||||
|
except ImportError:
|
||||||
|
def get_ssl_context():
|
||||||
|
return None
|
||||||
|
|
||||||
|
# Template-Helfer importieren falls verfügbar
|
||||||
|
try:
|
||||||
|
from utils.template_helpers import register_template_helpers
|
||||||
|
except ImportError:
|
||||||
|
def register_template_helpers(app):
|
||||||
|
pass
|
||||||
|
|
||||||
|
# Datenbank-Monitor und Backup-Manager importieren falls verfügbar
|
||||||
|
try:
|
||||||
|
from utils.database_monitor import DatabaseMonitor
|
||||||
|
database_monitor = DatabaseMonitor()
|
||||||
|
except ImportError:
|
||||||
|
database_monitor = None
|
||||||
|
|
||||||
|
try:
|
||||||
|
from utils.backup_manager import BackupManager
|
||||||
|
backup_manager = BackupManager()
|
||||||
|
except ImportError:
|
||||||
|
backup_manager = None
|
||||||
|
|
||||||
# Flask-App initialisieren
|
# Flask-App initialisieren
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
app.secret_key = SECRET_KEY
|
app.secret_key = SECRET_KEY
|
||||||
@@ -2565,6 +2598,12 @@ def forbidden_error(error):
|
|||||||
def get_database_stats():
|
def get_database_stats():
|
||||||
"""Gibt Datenbank-Statistiken zurück."""
|
"""Gibt Datenbank-Statistiken zurück."""
|
||||||
try:
|
try:
|
||||||
|
if database_monitor is None:
|
||||||
|
return jsonify({
|
||||||
|
"success": False,
|
||||||
|
"error": "Database Monitor nicht verfügbar"
|
||||||
|
}), 503
|
||||||
|
|
||||||
stats = database_monitor.get_database_stats()
|
stats = database_monitor.get_database_stats()
|
||||||
return jsonify({
|
return jsonify({
|
||||||
"success": True,
|
"success": True,
|
||||||
@@ -2582,6 +2621,12 @@ def get_database_stats():
|
|||||||
def check_database_health():
|
def check_database_health():
|
||||||
"""Führt eine Datenbank-Gesundheitsprüfung durch."""
|
"""Führt eine Datenbank-Gesundheitsprüfung durch."""
|
||||||
try:
|
try:
|
||||||
|
if database_monitor is None:
|
||||||
|
return jsonify({
|
||||||
|
"success": False,
|
||||||
|
"error": "Database Monitor nicht verfügbar"
|
||||||
|
}), 503
|
||||||
|
|
||||||
health = database_monitor.check_database_health()
|
health = database_monitor.check_database_health()
|
||||||
return jsonify({
|
return jsonify({
|
||||||
"success": True,
|
"success": True,
|
||||||
@@ -2599,6 +2644,12 @@ def check_database_health():
|
|||||||
def optimize_database():
|
def optimize_database():
|
||||||
"""Führt Datenbank-Optimierung durch."""
|
"""Führt Datenbank-Optimierung durch."""
|
||||||
try:
|
try:
|
||||||
|
if database_monitor is None:
|
||||||
|
return jsonify({
|
||||||
|
"success": False,
|
||||||
|
"error": "Database Monitor nicht verfügbar"
|
||||||
|
}), 503
|
||||||
|
|
||||||
result = database_monitor.optimize_database()
|
result = database_monitor.optimize_database()
|
||||||
return jsonify({
|
return jsonify({
|
||||||
"success": result["success"],
|
"success": result["success"],
|
||||||
@@ -2616,6 +2667,12 @@ def optimize_database():
|
|||||||
def create_database_backup():
|
def create_database_backup():
|
||||||
"""Erstellt ein manuelles Datenbank-Backup."""
|
"""Erstellt ein manuelles Datenbank-Backup."""
|
||||||
try:
|
try:
|
||||||
|
if backup_manager is None:
|
||||||
|
return jsonify({
|
||||||
|
"success": False,
|
||||||
|
"error": "Backup Manager nicht verfügbar"
|
||||||
|
}), 503
|
||||||
|
|
||||||
data = request.get_json() or {}
|
data = request.get_json() or {}
|
||||||
compress = data.get('compress', True)
|
compress = data.get('compress', True)
|
||||||
|
|
||||||
@@ -2638,6 +2695,12 @@ def create_database_backup():
|
|||||||
def list_database_backups():
|
def list_database_backups():
|
||||||
"""Listet alle verfügbaren Datenbank-Backups auf."""
|
"""Listet alle verfügbaren Datenbank-Backups auf."""
|
||||||
try:
|
try:
|
||||||
|
if backup_manager is None:
|
||||||
|
return jsonify({
|
||||||
|
"success": False,
|
||||||
|
"error": "Backup Manager nicht verfügbar"
|
||||||
|
}), 503
|
||||||
|
|
||||||
backups = backup_manager.get_backup_list()
|
backups = backup_manager.get_backup_list()
|
||||||
|
|
||||||
# Konvertiere datetime-Objekte zu Strings für JSON
|
# Konvertiere datetime-Objekte zu Strings für JSON
|
||||||
@@ -2660,6 +2723,12 @@ def list_database_backups():
|
|||||||
def restore_database_backup():
|
def restore_database_backup():
|
||||||
"""Stellt ein Datenbank-Backup wieder her."""
|
"""Stellt ein Datenbank-Backup wieder her."""
|
||||||
try:
|
try:
|
||||||
|
if backup_manager is None:
|
||||||
|
return jsonify({
|
||||||
|
"success": False,
|
||||||
|
"error": "Backup Manager nicht verfügbar"
|
||||||
|
}), 503
|
||||||
|
|
||||||
data = request.get_json()
|
data = request.get_json()
|
||||||
if not data or 'backup_path' not in data:
|
if not data or 'backup_path' not in data:
|
||||||
return jsonify({
|
return jsonify({
|
||||||
|
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user