Projet

Général

Profil

Development #22851

cron: faire un warning/erreur quand le lock est vraiment vieux

Ajouté par Thomas Noël il y a environ 6 ans. Mis à jour il y a plus de 5 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
28 mars 2018
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

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

Révision 46c936e7 (diff)
Ajouté par Thomas Noël il y a environ 6 ans

cron: alert when lock seems too old (#22851)

Historique

#1

Mis à jour par Thomas Noël il y a environ 6 ans

#2

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.

#3

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).

#4

Mis à jour par Thomas Noël il y a environ 6 ans

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.

#5

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).

#6

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.

#7

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

Formats disponibles : Atom PDF