"Refactor database shm files for improved performance (feat)"
This commit is contained in:
parent
947afd14f7
commit
ab4b625ba4
@ -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.job_scheduler import JobScheduler, get_job_scheduler
|
||||
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
|
||||
from blueprints.guest import guest_blueprint
|
||||
from blueprints.calendar import calendar_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
|
||||
app = Flask(__name__)
|
||||
app.secret_key = SECRET_KEY
|
||||
@ -2565,6 +2598,12 @@ def forbidden_error(error):
|
||||
def get_database_stats():
|
||||
"""Gibt Datenbank-Statistiken zurück."""
|
||||
try:
|
||||
if database_monitor is None:
|
||||
return jsonify({
|
||||
"success": False,
|
||||
"error": "Database Monitor nicht verfügbar"
|
||||
}), 503
|
||||
|
||||
stats = database_monitor.get_database_stats()
|
||||
return jsonify({
|
||||
"success": True,
|
||||
@ -2582,6 +2621,12 @@ def get_database_stats():
|
||||
def check_database_health():
|
||||
"""Führt eine Datenbank-Gesundheitsprüfung durch."""
|
||||
try:
|
||||
if database_monitor is None:
|
||||
return jsonify({
|
||||
"success": False,
|
||||
"error": "Database Monitor nicht verfügbar"
|
||||
}), 503
|
||||
|
||||
health = database_monitor.check_database_health()
|
||||
return jsonify({
|
||||
"success": True,
|
||||
@ -2599,6 +2644,12 @@ def check_database_health():
|
||||
def optimize_database():
|
||||
"""Führt Datenbank-Optimierung durch."""
|
||||
try:
|
||||
if database_monitor is None:
|
||||
return jsonify({
|
||||
"success": False,
|
||||
"error": "Database Monitor nicht verfügbar"
|
||||
}), 503
|
||||
|
||||
result = database_monitor.optimize_database()
|
||||
return jsonify({
|
||||
"success": result["success"],
|
||||
@ -2616,6 +2667,12 @@ def optimize_database():
|
||||
def create_database_backup():
|
||||
"""Erstellt ein manuelles Datenbank-Backup."""
|
||||
try:
|
||||
if backup_manager is None:
|
||||
return jsonify({
|
||||
"success": False,
|
||||
"error": "Backup Manager nicht verfügbar"
|
||||
}), 503
|
||||
|
||||
data = request.get_json() or {}
|
||||
compress = data.get('compress', True)
|
||||
|
||||
@ -2638,6 +2695,12 @@ def create_database_backup():
|
||||
def list_database_backups():
|
||||
"""Listet alle verfügbaren Datenbank-Backups auf."""
|
||||
try:
|
||||
if backup_manager is None:
|
||||
return jsonify({
|
||||
"success": False,
|
||||
"error": "Backup Manager nicht verfügbar"
|
||||
}), 503
|
||||
|
||||
backups = backup_manager.get_backup_list()
|
||||
|
||||
# Konvertiere datetime-Objekte zu Strings für JSON
|
||||
@ -2660,6 +2723,12 @@ def list_database_backups():
|
||||
def restore_database_backup():
|
||||
"""Stellt ein Datenbank-Backup wieder her."""
|
||||
try:
|
||||
if backup_manager is None:
|
||||
return jsonify({
|
||||
"success": False,
|
||||
"error": "Backup Manager nicht verfügbar"
|
||||
}), 503
|
||||
|
||||
data = request.get_json()
|
||||
if not data or 'backup_path' not in data:
|
||||
return jsonify({
|
||||
|
Binary file not shown.
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user