chore: build
Backend - Build & Lint / build (push) Has been cancelled

This commit is contained in:
2026-06-24 15:40:01 +02:00
parent 26cd84a334
commit 5d92316093
5 changed files with 64 additions and 31 deletions
+20 -2
View File
@@ -153,7 +153,7 @@ func (d *Database) RemoveCommandFromQueue(commandID int) error {
pipe.ZRem(RedisCtx, "queue:priority:sorted", commandIDStr)
// Trouver et retirer de la queue du livreur
keys, _ := Redis.Keys(RedisCtx, "queue:deliveryman:*").Result()
keys, _ := scanRedisKeys("queue:deliveryman:*")
var affectedDeliveryman string
for _, queueKey := range keys {
@@ -303,7 +303,7 @@ func (d *Database) SyncAllDeliverymanStatuses() error {
// iterDeliveryStatuses itère sur tous les statuts Redis des livreurs et appelle fn pour chacun.
func (d *Database) iterDeliveryStatuses(fn func(models.DeliveryPersonStatus)) error {
keys, err := Redis.Keys(RedisCtx, "delivery:status:*").Result()
keys, err := scanRedisKeys("delivery:status:*")
if err != nil {
return err
}
@@ -320,3 +320,21 @@ func (d *Database) iterDeliveryStatuses(fn func(models.DeliveryPersonStatus)) er
}
return nil
}
// scanRedisKeys remplace KEYS * par SCAN pour ne pas bloquer Redis.
func scanRedisKeys(pattern string) ([]string, error) {
var all []string
cursor := uint64(0)
for {
batch, next, err := Redis.Scan(RedisCtx, cursor, pattern, 200).Result()
if err != nil {
return nil, err
}
all = append(all, batch...)
cursor = next
if cursor == 0 {
break
}
}
return all, nil
}