fix(orchestrator): Auto-Refresh nicht direkt nach Cancel/Error neu einreihen
Der Auto-Refresh-Scheduler hat seinen letzten relevanten refresh_log-Eintrag bisher mit Filter status IN (completed, running) gesucht. Cancelled- und Error-Laeufe wurden ignoriert, der davor liegende Completed wurde genommen. Ergebnis: Direkt nach Cancel oder Error wurde der Slot als faellig gesehen und nach 60 Sekunden wieder eingereiht (Endlos-Loop bei Iran-Konflikt heute, 4x error in Folge ohne Pause). - main.py: Filter erweitert auf status IN (completed, running, cancelled, error) - orchestrator.py: Queue-Cancels schreiben jetzt auch einen cancelled-Eintrag ins refresh_log via _log_queued_cancellation (vorher: stiller Discard, kein Fingerabdruck im Log -> Auto-Refresh erkannte den Cancel nie) Wirkung: Nach Cancel oder Error startet die Lage erst beim naechsten regulaeren Slot wieder. refresh_mode bleibt unveraendert.
Dieser Commit ist enthalten in:
@@ -124,7 +124,7 @@ async def check_auto_refresh():
|
||||
|
||||
# Letzten abgeschlossenen oder laufenden Refresh pruefen
|
||||
cursor = await db.execute(
|
||||
"SELECT started_at, status FROM refresh_log WHERE incident_id = ? AND status IN ('completed', 'running') ORDER BY id DESC LIMIT 1",
|
||||
"SELECT started_at, status FROM refresh_log WHERE incident_id = ? AND status IN ('completed', 'running', 'cancelled', 'error') ORDER BY id DESC LIMIT 1",
|
||||
(incident_id,),
|
||||
)
|
||||
last_refresh = await cursor.fetchone()
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren