Fix: RQ worker Redis ACL, PATCHES.md update, snapshot
This commit is contained in:
@@ -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
|
||||
```
|
||||
|
||||
### Problème
|
||||
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 complète
|
||||
|
||||
```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"
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user