Communauté Eggdrop
Executer un timer à la fin d'une procédure - Version imprimable

+- Communauté Eggdrop (https://forum.eggdrop.fr)
+-- Forum : Eggdrop et TCL (https://forum.eggdrop.fr/forumdisplay.php?fid=8)
+--- Forum : Un peu plus loin (https://forum.eggdrop.fr/forumdisplay.php?fid=16)
+--- Sujet : Executer un timer à la fin d'une procédure (/showthread.php?tid=887)



Executer un timer à la fin d'une procédure - Belatucadrus - 23/02/2011

Bonjour,

J'suis face à un probleme de taille. Il faut que je lance un utimer a la fin d'une procédure qui ressemble à ceci

TCL
proc ::BT::proc {nick host hand chan text} {
     *Environ 5 ou 6 messages*
set ::BT::timer [utimer 15 ::BT::proc_suivante]
}



Seulement dès que la procédure est déclenchée, le timer se déclenche aussi, ce qui fait que le temps s'écoule pendant l'envoi de ces 6 messages, et que finalement, à la fin de ces messages, le timer ne dure au final que deux secondes.

Je peux certes augmenter la durée du timer, mais dans le cas d'une procédure avec un nombre de lignes très variables, le temps peut etre soit beaucoup trop long, soit beaucoup trop court.

Y'a-t'il un moyen efficace pour executer un timer seulement à la fin de la procédure et pas avant ?

Cordialement,


RE: Executer un timer à la fin d'une procédure - heretoc - 23/02/2011

Toutes les minutes tu va actualiser ton topic ? ^^
Ensuite tu pourais etre plus claire car personellement j'ai rien compris à la partie suivante :
Citation :Seulement dès que la procédure est déclenchée, le timer se déclenche aussi, ce qui fait que le temps s'écoule pendant l'envoi de ces 6 messages, et que finalement, à la fin de ces messages, le timer ne dure au final que deux secondes.

Si tu veux qu'ont t'aide soit plus explicite dans tes demandes et soit le plus claire possible en detaillant ce que tu souhaite au final


RE: Executer un timer à la fin d'une procédure - MenzAgitat - 23/02/2011

Extrait d'une discussion sur IRC, pour le suivi de la résolution du problème.

#eggdrop a écrit :[22:04:37] <MenzAgitat> faut pas juger au temps que prend d'afficher tout ce qu'il y a en file d'attente de puthelp
[22:04:46] <MenzAgitat> qui ne s'affiche qu'à raison d'une ligne / 2 secondes
[22:05:01] <Belatucadrus> ouais ça jsais
[22:05:03] <MenzAgitat> c'est pas quand il a fini de tout afficher que la proc se termine
[22:05:14] <MenzAgitat> ta proc s'exécute, se termine (et lance ton timer au passage)
[22:05:27] <MenzAgitat> et la file d'attente continue de s'afficher à son rythme
[22:05:36] <MenzAgitat> la proc n'a fait qu'ajouter des trucs dans une file d'attente
[22:05:38] <CrazyEgg> (alias_angelius@Zeolia) Bonne nuit CrazyCat
[22:05:42] <MenzAgitat> après c'est plus son problème
[22:05:52] <MenzAgitat> la file d'attente se vide d'elle même

--> solution suggérée : code ta propre file d'attente afin d'avoir un contrôle dessus.


RE: Executer un timer à la fin d'une procédure - Belatucadrus - 24/02/2011

Je n'ai pas les capacités necessaires pour coder ma propre file d'attente, je vais plutôt me pencher vers un script hybride.


RE: Executer un timer à la fin d'une procédure - MenzAgitat - 27/02/2017

Je déterre ce vieux post à toutes fins utiles, voici une façon de gérer une file d'attente alternative : Utiliser une file d'attente avec une priorité nulle pour l'envoi de messages