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
|
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
|
### 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
|
### Solution : Désactiver l'ACL Redis
|
||||||
Patch de `redis/connection.py` dans le container FM :
|
Modifier le docker-compose du container Redis pour ajouter `--aclfile /dev/null` :
|
||||||
```python
|
|
||||||
# Ajouté dans redis/connection.py, méthode connect()
|
```yaml
|
||||||
if getattr(self, "username", None) is None and getattr(self, "password", None):
|
# docker-compose.yml
|
||||||
self.username = "default"
|
flexmeasures-redis:
|
||||||
|
command: redis-server --loglevel warning --requirepass ${FLEXMEASURES_REDIS_PASSWORD:-Digitribe972} --aclfile /dev/null
|
||||||
```
|
```
|
||||||
|
|
||||||
### Alternative (si le patch ne persiste pas)
|
Puis recréer le container (pas juste restart) :
|
||||||
Désactiver l'ACL Redis :
|
|
||||||
```bash
|
```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
|
## 4. Procédure de restauration complète
|
||||||
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
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 1. Restaurer les templates
|
# 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
|
# 5. Redémarrer FM
|
||||||
docker restart flexmeasures-server
|
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