Development #22851
cron: faire un warning/erreur quand le lock est vraiment vieux
0%
Description
Par défaut, la commande cron sort silencieusement quand le lock est posé (par un autre cron en cours).
Il pourrait arriver que le lock soit toujours là, mais plus le cron qui le soutenait. Donc on pourrait décider qu'après X temps, il faut lever une CommandError, même en verbosity 0.
On pourrait se baser sur JUMP_TIMEOUT_INTERVAL*10, ie par défaut 200 minutes.
Fichiers
Révisions associées
Historique
Mis à jour par Thomas Noël il y a environ 6 ans
- Fichier 0001-cron-alert-when-lock-seems-too-old-22851.patch 0001-cron-alert-when-lock-seems-too-old-22851.patch ajouté
- Statut changé de Nouveau à En cours
- Patch proposed changé de Non à Oui
Mis à jour par Benjamin Dauvergne il y a environ 6 ans
Si tu peux séparer le nettoyage des imports du reste, c'est mieux.
Mis à jour par Benjamin Dauvergne il y a environ 6 ans
Pourquoi on supprime le fichier de lock au fait ? locket n'est pas basé sur O_CREAT mais sur flock() ou équivalent il me semble, on peut réutiliser le même fichier de lock autant qu'on veut, généralement on écrit le pid du process qui locke comme ça pour le fun (et ça modifie mtime).
Mis à jour par Thomas Noël il y a environ 6 ans
- Fichier 0001-cron-alert-when-lock-seems-too-old-22851.patch 0001-cron-alert-when-lock-seems-too-old-22851.patch ajouté
Benjamin Dauvergne a écrit :
Pourquoi on supprime le fichier de lock au fait ? locket n'est pas basé sur O_CREAT mais sur flock() ou équivalent il me semble, on peut réutiliser le même fichier de lock autant qu'on veut, généralement on écrit le pid du process qui locke comme ça pour le fun (et ça modifie mtime).
Je me disais que pour le jour où on voudrait regarder un peu ce qui se passe, c'est pratique que le lock ne soit plus là quand y'a pas de lock, ie que la présence du fichier soit un signe "facile à voir" qu'un cron est en cours. Mais bon, sinon le acquire() modifie bien le st_mtime, donc effectivement ne pas faire le os.unlink ça marche très bien, sans problème.
Patch réduit donc à la fonctionnalité demandée dans le ticket, qui ne fait plus le os.remove et ne bidouille pas les imports.
Mis à jour par Benjamin Dauvergne il y a environ 6 ans
Ack. (si tu veux jouer avec le temps dans les tests, comme ici, pytest-freezegun c'est übercool).
Mis à jour par Thomas Noël il y a environ 6 ans
- Statut changé de En cours à Résolu (à déployer)
commit 46c936e7971e81488bac9d8cd87d53a3a8c60b24 Author: Thomas NOEL <tnoel@entrouvert.com> Date: Wed Mar 28 10:49:02 2018 +0200 cron: alert when lock seems too old (#22851)
Benjamin Dauvergne a écrit :
Ack. (si tu veux jouer avec le temps dans les tests, comme ici, pytest-freezegun c'est übercool).
Yep je me note ça dans un coin, merci.
Mis à jour par Frédéric Péters il y a plus de 5 ans
- Statut changé de Résolu (à déployer) à Solution déployée
cron: alert when lock seems too old (#22851)