unixtime vs clock seconds
#1
Je suis confronté à un phénomène que je n'arrive pas à expliquer.
En principe, unixtime est censé retourner la même chose que clock seconds mais ce n'est pas toujours le cas.
Citation :[13:43:44] <MenzAgitat> .tcl strftime "%H:%M:%S" [unixtime]
[13:43:44] <Boole> Tcl: 13:43:44
[13:43:49] <MenzAgitat> .tcl strftime "%H:%M:%S" [clock seconds]
[13:43:49] <Boole> Tcl: 14:04:54
[13:43:56] <MenzAgitat> .tcl strftime "%H:%M:%S" [expr {[clock milliseconds] / 1000}].
[13:43:56] <Boole> Tcl: 14:05:01
Si je redémarre le bot et que je réessaie tout de suite après :
Citation :[13:45:52] <MenzAgitat> .tcl strftime "%H:%M:%S" [unixtime]
[13:45:52] <Boole> Tcl: 13:45:52
[13:45:54] <MenzAgitat> .tcl strftime "%H:%M:%S" [clock seconds]
[13:45:54] <Boole> Tcl: 13:45:54
J'ai également remarqué que l'Eggdrop (un Windrop v1.6.20) peut ajuster l'heure du système qui l'héberge s'il détecte une incohérence, et ça a pour effet de décaler mon horloge plusieurs fois par jour.
Répondre Avertir
#2
salut,

j ai déjà vu ça une foi, il me semble que ça viens du réglage du timezone de eggdrop ou une variable associée. clock seconde étant une commande native de tcl elle est la valeur de référence et seule unixtime est corrigée par eggdrop
C'est en reconnaissant ses erreurs que l'on progresse Wink
Répondre Avertir
#3
Non, le décalage n'est pas constant mais progressif et s'accroît au fur et à mesure que le bot fait de l'uptime.
Citation :[23:38:28] <MenzAgitat> .tcl strftime "%H:%M:%S" [clock seconds]
[23:38:28] <Boole> Tcl: 23:38:49
Répondre Avertir
#4
Est-ce que clock ne démarre pas en même temps que l'eggdrop et serait une horloge interne ?
Donc plus l'eggdrop est chargé, plus ça se décale ?
Répondre
#5
eggdrop étant son propre interpréteur tcl, clock démarre en même temps que le bot. par contre je ne pense pas qu'il puisse y avoir de lag a moins que le serveur soit vraiment saturé.
si ça te gène vraiment, j ai une petite solution temporaire en attendant de trouver
tcl
if {[info command unixtime_]==""} {
   rename unixtime unixtime_
   proc unixtime {} {clock seconds}
}


C'est en reconnaissant ses erreurs que l'on progresse Wink
Répondre Avertir
#6
Je ne cherche pas un contournement, je peux y arriver seul.
Ce que je cherche, c'est à comprendre ce qui cause ça pour éventuellement en corriger la cause.
Répondre Avertir
#7
J'ai aussi assez régulièrement ce genre de messages en partyline, c'est vraisemblablement lié :
Citation :[17:35:33] <Boole> [17:35:33] (!) timer drift -- spun 43 minutes
[17:35:33] <Boole> [17:35:33] (!) timer drift -- spun 14 minutes
Répondre Avertir
#8
salut,
je ne sais pas si tu a vu ici (le dernier post)

Citation :The unixtime command relies on the time(2) system call, while clock seconds uses the gettimeofday(2) system call. Both of these should return the value of the system clock, thus I have no further ideas of the issue right now.
tu n'aurais pas installé un paquet qui touche à l'un des deux?

édit: peut être un problème avec ntp ou date
C'est en reconnaissant ses erreurs que l'on progresse Wink
Répondre Avertir


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
Tchat 100% gratuit -Discutez en toute liberté