Anomalie #168
ferméEviter l'exécution concurrente de tâche
100%
Description
Les tâches exécutables en CLI, prévues pour être progammées périodiquement en tâche CRON, ne disposent pas de contrôle pour éviter des exécutions concurrentes.
Cela peut poser des soucis sur des tâches programmées sur des intervalles très court. Par exemple la remontée de données de connexion par proxyepn:session-live peut être lancé toutes les minutes. Mais si jamais un traitement prend plus d'une minute, une nouvelle exécution peut avoir lieu alors que la précédente n'est pas terminée. Cela peut aboutir à des doublons de traitement.
Mis à jour par Grégory MARIGOT - TEICEE il y a plus de 5 ans
- Statut changé de Nouveau à Résolu
- % réalisé changé de 0 à 100
Un fichier d'exemples pour la configuration des tâches cron est fourni dans `doc/proxyepn.cron`.
Il y est suggéré d'effectuer un test sur les processus en cours d'exécution avant de lancer la tâche 'session-live' :
* * * * * root ps ax | grep -v grep | grep -q '/your/install/path/proxyepn/symfony proxyepn:session-live' || "/your/install/path/proxyepn/symfony" proxyepn:session-live
Une solution alternative aurait été de gérer des fichiers de locks directement par les scripts symfony. Mais cette méthode est moins souple (test imposé au lieu de laisser la décision dans la définition du cron) et peut être problématique si le script s'interrompt avant d'avoir lever son lock.
Mis à jour par Grégory MARIGOT - TEICEE il y a plus de 5 ans
- Version cible mis à ProxyEPN 2.6
Mis à jour par Grégory MARIGOT - TEICEE il y a plus de 3 ans
- Statut changé de Résolu à Fermé