feat: Implementiere Scheduler zur Überprüfung von Druckaufträgen und verbessere SSL-Zertifikat-Generierung unter Windows
This commit is contained in:
@@ -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
|
||||
|
Reference in New Issue
Block a user