This commit is contained in:
@@ -17,8 +17,6 @@ func StartRedisWorkers(database *db.Database) {
|
||||
|
||||
go AutoAssignWorker(database)
|
||||
|
||||
go StockCleanupWorker(database)
|
||||
|
||||
go PointsSyncWorker(database)
|
||||
|
||||
log.Println("✅ Tous les workers Redis sont démarrés")
|
||||
@@ -76,48 +74,6 @@ func AutoAssignWorker(database *db.Database) {
|
||||
}
|
||||
}
|
||||
|
||||
// ============================================
|
||||
// WORKER NETTOYAGE STOCK
|
||||
// ============================================
|
||||
|
||||
// StockCleanupWorker nettoie les réservations expirées
|
||||
func StockCleanupWorker(database *db.Database) {
|
||||
ticker := time.NewTicker(5 * time.Minute)
|
||||
defer ticker.Stop()
|
||||
|
||||
log.Println("🧹 Worker Nettoyage Stock démarré (check toutes les 5 min)")
|
||||
|
||||
for range ticker.C {
|
||||
cleanedCount := 0
|
||||
|
||||
// Récupérer toutes les clés de réservation
|
||||
keys, err := db.Redis.Keys(db.RedisCtx, "stock:reserve:*").Result()
|
||||
if err != nil {
|
||||
log.Printf("⚠️ Erreur récupération réservations: %v", err)
|
||||
continue
|
||||
}
|
||||
|
||||
for _, key := range keys {
|
||||
// Vérifier si la réservation est expirée
|
||||
ttl, err := db.Redis.TTL(db.RedisCtx, key).Result()
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
|
||||
// Si TTL <= 0, la réservation est expirée
|
||||
if ttl <= 0 {
|
||||
// Redis va automatiquement supprimer la clé
|
||||
// Mais on peut log pour traçabilité
|
||||
cleanedCount++
|
||||
}
|
||||
}
|
||||
|
||||
if cleanedCount > 0 {
|
||||
log.Printf("🧹 %d réservations de stock expirées nettoyées", cleanedCount)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ============================================
|
||||
// WORKER SYNCHRONISATION POINTS
|
||||
// ============================================
|
||||
|
||||
Reference in New Issue
Block a user