Je souhaite lancer une tâche toutes les 5 mn;
cependant, si cette dernière prend plus de 5mn,
je ne veux pas relancer une autre tâche avant que la précédente
ne soit terminée.
Comment résoudre cette contrainte le plus élégament possible ?
Merci d'avance.
--
-Stan
Je souhaite lancer une tâche toutes les 5 mn; cependant, si cette dernière prend plus de 5mn, je ne veux pas relancer une autre tâche avant que la précédente ne soit terminée.
Comment résoudre cette contrainte le plus élégament possible ?
Ta tâche créée un fichier verrou lors de son lancement et l'efface à la fin du traitement. Si une autre instance de ta tâche essaie de démarrer et que le fichier verrou est présent alors elle se termine sans effectuer ses opérations.
Attention aux crashes.
Merci d'avance.
'plaisir.
Thomas.
Stan a tapoté :
Bonjour,
Je souhaite lancer une tâche toutes les 5 mn;
cependant, si cette dernière prend plus de 5mn,
je ne veux pas relancer une autre tâche avant que la précédente
ne soit terminée.
Comment résoudre cette contrainte le plus élégament possible ?
Ta tâche créée un fichier verrou lors de son lancement et l'efface
à la fin du traitement. Si une autre instance de ta tâche essaie
de démarrer et que le fichier verrou est présent alors elle se
termine sans effectuer ses opérations.
Je souhaite lancer une tâche toutes les 5 mn; cependant, si cette dernière prend plus de 5mn, je ne veux pas relancer une autre tâche avant que la précédente ne soit terminée.
Comment résoudre cette contrainte le plus élégament possible ?
Ta tâche créée un fichier verrou lors de son lancement et l'efface à la fin du traitement. Si une autre instance de ta tâche essaie de démarrer et que le fichier verrou est présent alors elle se termine sans effectuer ses opérations.
Attention aux crashes.
Merci d'avance.
'plaisir.
Thomas.
Nicolas George
Thomas Nemeth wrote in message <ffaj6f$s5b$:
Ta tâche créée un fichier verrou lors de son lancement et l'efface à la fin du traitement. Si une autre instance de ta tâche essaie de démarrer et que le fichier verrou est présent alors elle se termine sans effectuer ses opérations.
Attention aux crashes.
Pour que les crashes ne posent pas de problème, il suffit d'utiliser un verrou noyau plutôt qu'un fichier verrou.
Thomas Nemeth wrote in message <ffaj6f$s5b$2@s1.news.oleane.net>:
Ta tâche créée un fichier verrou lors de son lancement et l'efface
à la fin du traitement. Si une autre instance de ta tâche essaie
de démarrer et que le fichier verrou est présent alors elle se
termine sans effectuer ses opérations.
Attention aux crashes.
Pour que les crashes ne posent pas de problème, il suffit d'utiliser un
verrou noyau plutôt qu'un fichier verrou.
Ta tâche créée un fichier verrou lors de son lancement et l'efface à la fin du traitement. Si une autre instance de ta tâche essaie de démarrer et que le fichier verrou est présent alors elle se termine sans effectuer ses opérations.
Attention aux crashes.
Pour que les crashes ne posent pas de problème, il suffit d'utiliser un verrou noyau plutôt qu'un fichier verrou.
Nicolas George
"Stan" wrote in message <ffains$s4s$:
Je souhaite lancer une tâche toutes les 5 mn; cependant, si cette dernière prend plus de 5mn, je ne veux pas relancer une autre tâche avant que la précédente ne soit terminée.
Est-ce que tu as besoin que le début de la tâche soit exactement aux multiples de 5 minutes ? Sinon, le plus simple de loin est :
while true; do something sleep 300 done
"Stan" wrote in message <ffains$s4s$1@s1.news.oleane.net>:
Je souhaite lancer une tâche toutes les 5 mn;
cependant, si cette dernière prend plus de 5mn,
je ne veux pas relancer une autre tâche avant que la précédente
ne soit terminée.
Est-ce que tu as besoin que le début de la tâche soit exactement aux
multiples de 5 minutes ? Sinon, le plus simple de loin est :
Je souhaite lancer une tâche toutes les 5 mn; cependant, si cette dernière prend plus de 5mn, je ne veux pas relancer une autre tâche avant que la précédente ne soit terminée.
Est-ce que tu as besoin que le début de la tâche soit exactement aux multiples de 5 minutes ? Sinon, le plus simple de loin est :
while true; do something sleep 300 done
Stan
"Thomas Nemeth" a écrit dans le message de news:ffaj6f$s5b$
Stan a tapoté :
Bonjour,
Je souhaite lancer une tâche toutes les 5 mn; cependant, si cette dernière prend plus de 5mn, je ne veux pas relancer une autre tâche avant que la précédente ne soit terminée.
Comment résoudre cette contrainte le plus élégament possible ?
Ta tâche créée un fichier verrou lors de son lancement et l'efface à la fin du traitement. Si une autre instance de ta tâche essaie de démarrer et que le fichier verrou est présent alors elle se termine sans effectuer ses opérations.
Attention aux crashes.
Dans le même principe, on peut aussi utiliser une variable d'environnement.
-- -Stan
"Thomas Nemeth" <thomas.nemeth@betatech.invalid> a écrit dans le message de
news:ffaj6f$s5b$2@s1.news.oleane.net...
Stan a tapoté :
Bonjour,
Je souhaite lancer une tâche toutes les 5 mn;
cependant, si cette dernière prend plus de 5mn,
je ne veux pas relancer une autre tâche avant que la précédente
ne soit terminée.
Comment résoudre cette contrainte le plus élégament possible ?
Ta tâche créée un fichier verrou lors de son lancement et l'efface
à la fin du traitement. Si une autre instance de ta tâche essaie
de démarrer et que le fichier verrou est présent alors elle se
termine sans effectuer ses opérations.
Attention aux crashes.
Dans le même principe, on peut aussi utiliser une variable d'environnement.
"Thomas Nemeth" a écrit dans le message de news:ffaj6f$s5b$
Stan a tapoté :
Bonjour,
Je souhaite lancer une tâche toutes les 5 mn; cependant, si cette dernière prend plus de 5mn, je ne veux pas relancer une autre tâche avant que la précédente ne soit terminée.
Comment résoudre cette contrainte le plus élégament possible ?
Ta tâche créée un fichier verrou lors de son lancement et l'efface à la fin du traitement. Si une autre instance de ta tâche essaie de démarrer et que le fichier verrou est présent alors elle se termine sans effectuer ses opérations.
Attention aux crashes.
Dans le même principe, on peut aussi utiliser une variable d'environnement.
-- -Stan
Marc
Thomas Nemeth wrote:
Je souhaite lancer une tâche toutes les 5 mn; cependant, si cette dernière prend plus de 5mn, je ne veux pas relancer une autre tâche avant que la précédente ne soit terminée.
Comment résoudre cette contrainte le plus élégament possible ?
Ta tâche créée un fichier verrou lors de son lancement et l'efface à la fin du traitement. Si une autre instance de ta tâche essaie de démarrer et que le fichier verrou est présent alors elle se termine sans effectuer ses opérations.
Attention aux crashes.
Tant qu'à faire, on peut stocker le pid du processus qui gère la tâche dans le fichier, histoire de pouvoir vérifier s'il tourne encore. Et vérifier si la date de création du fichier n'est pas trop ancienne non plus, auquel cas le processus est sans doute parti dans l'espace et on aura envie de le tuer.
Thomas Nemeth wrote:
Je souhaite lancer une tâche toutes les 5 mn;
cependant, si cette dernière prend plus de 5mn,
je ne veux pas relancer une autre tâche avant que la précédente
ne soit terminée.
Comment résoudre cette contrainte le plus élégament possible ?
Ta tâche créée un fichier verrou lors de son lancement et l'efface
à la fin du traitement. Si une autre instance de ta tâche essaie
de démarrer et que le fichier verrou est présent alors elle se
termine sans effectuer ses opérations.
Attention aux crashes.
Tant qu'à faire, on peut stocker le pid du processus qui gère la tâche
dans le fichier, histoire de pouvoir vérifier s'il tourne encore. Et
vérifier si la date de création du fichier n'est pas trop ancienne non
plus, auquel cas le processus est sans doute parti dans l'espace et on
aura envie de le tuer.
Je souhaite lancer une tâche toutes les 5 mn; cependant, si cette dernière prend plus de 5mn, je ne veux pas relancer une autre tâche avant que la précédente ne soit terminée.
Comment résoudre cette contrainte le plus élégament possible ?
Ta tâche créée un fichier verrou lors de son lancement et l'efface à la fin du traitement. Si une autre instance de ta tâche essaie de démarrer et que le fichier verrou est présent alors elle se termine sans effectuer ses opérations.
Attention aux crashes.
Tant qu'à faire, on peut stocker le pid du processus qui gère la tâche dans le fichier, histoire de pouvoir vérifier s'il tourne encore. Et vérifier si la date de création du fichier n'est pas trop ancienne non plus, auquel cas le processus est sans doute parti dans l'espace et on aura envie de le tuer.
Stan
"Nicolas George" <nicolas$ a écrit dans le message de news:4718d35e$0$8812$
"Stan" wrote in message <ffains$s4s$:
Je souhaite lancer une tâche toutes les 5 mn; cependant, si cette dernière prend plus de 5mn, je ne veux pas relancer une autre tâche avant que la précédente ne soit terminée.
Est-ce que tu as besoin que le début de la tâche soit exactement aux multiples de 5 minutes ? Sinon, le plus simple de loin est :
Non, pas besoin d'un multiple de 5mn.
while true; do something sleep 300 done
A quoi sert le sleep 300 ?
-- -Stan
"Nicolas George" <nicolas$george@salle-s.org> a écrit dans le message de
news:4718d35e$0$8812$426a34cc@news.free.fr...
"Stan" wrote in message <ffains$s4s$1@s1.news.oleane.net>:
Je souhaite lancer une tâche toutes les 5 mn;
cependant, si cette dernière prend plus de 5mn,
je ne veux pas relancer une autre tâche avant que la précédente
ne soit terminée.
Est-ce que tu as besoin que le début de la tâche soit exactement aux
multiples de 5 minutes ? Sinon, le plus simple de loin est :
"Nicolas George" <nicolas$ a écrit dans le message de news:4718d35e$0$8812$
"Stan" wrote in message <ffains$s4s$:
Je souhaite lancer une tâche toutes les 5 mn; cependant, si cette dernière prend plus de 5mn, je ne veux pas relancer une autre tâche avant que la précédente ne soit terminée.
Est-ce que tu as besoin que le début de la tâche soit exactement aux multiples de 5 minutes ? Sinon, le plus simple de loin est :
Je reformule ma question : quelle est le rôle de la pause ?
Puisqu'il faut mettre les points sur les i :
300 secondes = 5 fois 60 secondes = 5 minutes
Nicolas George
Marc wrote in message <ffak67$qpf$:
Tant qu'à faire, on peut stocker le pid du processus qui gère la tâche dans le fichier, histoire de pouvoir vérifier s'il tourne encore. Et vérifier si la date de création du fichier n'est pas trop ancienne non plus, auquel cas le processus est sans doute parti dans l'espace et on aura envie de le tuer.
Comment accumuler hacks ignobles et pas fiables sur hacks ignobles et pas fiables quand il y a une solution fiable et propre.
Marc wrote in message <ffak67$qpf$1@nef.ens.fr>:
Tant qu'à faire, on peut stocker le pid du processus qui gère la tâche
dans le fichier, histoire de pouvoir vérifier s'il tourne encore. Et
vérifier si la date de création du fichier n'est pas trop ancienne non
plus, auquel cas le processus est sans doute parti dans l'espace et on
aura envie de le tuer.
Comment accumuler hacks ignobles et pas fiables sur hacks ignobles et pas
fiables quand il y a une solution fiable et propre.
Tant qu'à faire, on peut stocker le pid du processus qui gère la tâche dans le fichier, histoire de pouvoir vérifier s'il tourne encore. Et vérifier si la date de création du fichier n'est pas trop ancienne non plus, auquel cas le processus est sans doute parti dans l'espace et on aura envie de le tuer.
Comment accumuler hacks ignobles et pas fiables sur hacks ignobles et pas fiables quand il y a une solution fiable et propre.