Programmation.c : Cron ou sleep() ?
Posté par Ludovic Rivallain (aka Creasy) (page perso, ) le 17 mars 2008Bonjour,
Je me colle d'ici peu au codage d'un petit programme qui vérifiera chaque minute la correspondance entre l'heure actuelle et l'heure de réveil demandée par des utilisateurs d'un service téléphonique basé sur Asterisk (info placée dans un fichier).
J'avais déjà le même programme codé avec les pieds et en bash (vite fait, bien fait fonctionnel, mais comme le nombre d'utilisateurs explose, j'ai décidé de le recoder en C (et avec les mains cette fois) pour réduire le temps d'exécution et limiter la consommation de performances.
Avant j'utilisais cron pour lancer chaque minute ce petit script.
J'en viens à ma question:
Est-il plus "performant" d'utiliser cron pour ce genre de tâche (lancer le programme toutes les minutes) ou d'utiliser un "sleep()" dans le programme (qui sera lancé en daemon du coup) avec un temps de repos variable selon le temps qu'a duré l'exécution?
(non je ne cherche pas à créer un nouveau troll cron Vs sleep() ;-) )
Et quels sont les avantages/inconvénients de ces deux solutions?
En gros si j'utilisais "sleep()" j'imagine un truc comme:
- Exécution du programme,
- Juste avant la fin on regarde qu'elle heure il est et on en déduis le temps qu'il reste jusqu'à la prochaine minute,
- On patient le temps calculé,
- On reboucle en "1".
Merci d'avance pour vos lumières.
Ludo,
> Lire le message (13 commentaires, moyenne: 2,5).
Vous avez demandé le commentaire #914355.



prise de tete
cron ou sleep ?
aucun.
-> man at
c'est fait pour et ça inclus la gestion !
[^]Re: prise de tete
Même réponse que pour le message précédent.
"at" semble approprié en effet mais il y a des contraintes (récursivité entre autres) qui sont me demanderais plus de temps à reprendre et l'interfaçage qui serait à revoir totalement.