Anomalie #168
fermé
Eviter l'exécution concurrente de tâche
Ajouté par Grégory MARIGOT - TEICEE il y a plus de 6 ans.
Mis à jour il y a plus de 3 ans.
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.
- 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.
- Version cible mis à ProxyEPN 2.6
- Statut changé de Résolu à Fermé
Formats disponibles : Atom
PDF