feat: Implementiere Scheduler zur Überprüfung von Druckaufträgen und verbessere SSL-Zertifikat-Generierung unter Windows

This commit is contained in:
2025-05-26 09:12:14 +02:00
parent 327b0a6ea4
commit e3ebd219dd
4 changed files with 149 additions and 13 deletions

View File

@@ -1322,6 +1322,52 @@ def init_app():
else:
app_logger.warning("SSL ist deaktiviert. Die Verbindung ist unverschlüsselt!")
# Scheduler-Funktion zur Überprüfung der Druckaufträge
def check_jobs():
"""
Überprüft alle aktiven Druckaufträge und führt entsprechende Aktionen aus.
Diese Funktion wird vom Scheduler regelmäßig aufgerufen.
"""
app_logger.info("Überprüfe Druckaufträge...")
try:
db_session = get_db_session()
# Aktive Jobs abrufen
active_jobs = db_session.query(Job).filter(
Job.status.in_(["scheduled", "running"])
).all()
now = datetime.now()
for job in active_jobs:
# Prüfen, ob der Job gestartet werden soll
if job.status == "scheduled" and job.start_at <= now:
app_logger.info(f"Starte Job {job.id} für Drucker {job.printer_id}")
job.status = "running"
# Steckdose einschalten (implementieren Sie diese Funktion)
from utils.job_scheduler import toggle_plug
toggle_plug(job.printer_id, True)
# Prüfen, ob der Job beendet werden soll
elif job.status == "running" and job.end_at <= now:
app_logger.info(f"Beende Job {job.id} für Drucker {job.printer_id}")
job.status = "finished"
job.actual_end_time = now
# Steckdose ausschalten
from utils.job_scheduler import toggle_plug
toggle_plug(job.printer_id, False)
db_session.commit()
db_session.close()
except Exception as e:
app_logger.error(f"Fehler bei der Überprüfung von Druckaufträgen: {str(e)}")
if 'db_session' in locals():
db_session.close()
# App starten
if __name__ == "__main__":
import argparse