Fix: RQ worker Redis ACL, PATCHES.md update, snapshot

This commit is contained in:
Eric F
2026-06-09 17:07:15 -04:00
parent aa60802fc2
commit 9d5d497676

View File

@@ -33,39 +33,36 @@ La fonction `addTileLayer` a été modifiée :
docker cp config/map-init-patch.js flexmeasures-server:/app/flexmeasures/ui/static/js/map-init.js
```
## 3. Redis 7+ ACL
## 3. Redis 7+ ACL - Worker RQ
### Problème
FlexMeasures utilise `redis-py` qui crée des connexions sans `username`. Redis 7+ ACL exige un `username` quand un `password` est défini.
FlexMeasures utilise `redis-py` qui crée des connexions sans `username`. Redis 7+ ACL exige un `username` quand un `password` est défini. Le worker RQ ne peut pas se connecter.
### Solution appliquée
Patch de `redis/connection.py` dans le container FM :
```python
# Ajouté dans redis/connection.py, méthode connect()
if getattr(self, "username", None) is None and getattr(self, "password", None):
self.username = "default"
### Solution : Désactiver l'ACL Redis
Modifier le docker-compose du container Redis pour ajouter `--aclfile /dev/null` :
```yaml
# docker-compose.yml
flexmeasures-redis:
command: redis-server --loglevel warning --requirepass ${FLEXMEASURES_REDIS_PASSWORD:-Digitribe972} --aclfile /dev/null
```
### Alternative (si le patch ne persiste pas)
Désactiver l'ACL Redis :
Puis recréer le container (pas juste restart) :
```bash
docker exec flexmeasures-redis redis-cli -a Digitribe972 ACL SETUSER default on >Digitribe972 ~* &* +@all
cd /home/eric/flexmeasures
docker compose stop flexmeasures-redis
docker compose rm -f flexmeasures-redis
docker compose up -d flexmeasures-redis
```
## 4. Worker RQ
### Vérification
```bash
# Le worker RQ doit être connecté
docker exec flexmeasures-redis redis-cli -a Digitribe972 SMEMBERS rq:workers
# Doit afficher: rq:worker:cariflex-ingestion
```
### Probme
Le worker RQ crée sa propre connexion Redis qui n'utilise pas le config de l'app. Erreur : `AuthenticationError: invalid username-password pair`.
### Statut
**NON RÉSOLU**. Le worker RQ ne peut pas se connecter à Redis 7+.
### Pistes
- Patcher `redis/connection.py` (non persistant entre les processus)
- Désactiver l'ACL Redis (fonctionne mais non persistant)
- Utiliser `redis-server --requirepass Digitribe972 --aclfile ""` (désactive ACL)
## 5. Procédure de restauration complète
## 4. Procédure de restauration compte
```bash
# 1. Restaurer les templates
@@ -85,4 +82,7 @@ docker cp config/map-init-patch.js flexmeasures-server:/app/flexmeasures/ui/stat
# 5. Redémarrer FM
docker restart flexmeasures-server
# 6. Worker RQ se lance automatiquement via flexmeasures-worker container
# Vérifier: docker logs flexmeasures-worker | grep "SAVED"
```