This commit is contained in:
Oarkflow
2025-05-10 18:24:12 +05:45
parent 711441a87a
commit 4ce78c4848
4 changed files with 293 additions and 60 deletions

18
task.go
View File

@@ -2,6 +2,7 @@ package mq
import (
"context"
"fmt"
"time"
"github.com/oarkflow/json"
@@ -93,3 +94,20 @@ func WithDedupKey(key string) TaskOption {
t.DedupKey = key
}
}
// Add advanced dead-letter queue management
func (b *Broker) ReprocessDLQ(queueName string) error {
dlqName := queueName + "_dlq"
dlq, ok := b.deadLetter.Get(dlqName)
if !ok {
return fmt.Errorf("dead-letter queue %s does not exist", dlqName)
}
for {
select {
case task := <-dlq.tasks:
b.NewQueue(queueName).tasks <- task
default:
return nil
}
}
}