fix(queue): fertige Ansagen nicht mehr als „abgebrochen" protokollieren
Der Worker rief cancel() auf seinem eigenen Kontext, BEVOR er ctx.Err() prüfte — damit war jede normal beendete Ansage im Protokoll „abgebrochen", auch bei Erfolg. Der Abbruch wird jetzt vor dem eigenen cancel() abgelesen. Regressionstest: fertig heißt „fertig nach", ein echter Cancel heißt „abgebrochen". Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
1 parent
bc26a73aeb
commit
79314dfb0f
2 files changed
+60
-1
No files matched your search
@@ -317,6 +317,9 @@ func (q *Queue) loop() {
|
||||
start := time.Now()
|
||||
err := q.speak(ctx, item)
|
||||
dur := time.Since(start)
|
||||
// Abbruch VOR dem eigenen cancel() ablesen — danach wäre ctx.Err()
|
||||
// immer gesetzt und jede fertige Ansage hieße „abgebrochen".
|
||||
cancelled := ctx.Err() != nil
|
||||
cancel()
|
||||
|
||||
q.mu.Lock()
|
||||
@@ -325,7 +328,7 @@ func (q *Queue) loop() {
|
||||
q.mu.Unlock()
|
||||
|
||||
switch {
|
||||
case ctx.Err() != nil:
|
||||
case cancelled:
|
||||
q.logf("queue: ansage %s abgebrochen", item.ID)
|
||||
case err != nil:
|
||||
q.logf("queue: ansage %s fehlgeschlagen nach %s: %v", item.ID, dur.Round(time.Millisecond), err)
|
||||
|
||||
Reference in new issue
Block a user