我有一段代码有一个过程,我只希望过程触发,最多每 2 分钟一次。如果它在最后 2 分钟内触发,那么它应该退出。目前,它在执行之前(在 5000 之后)有一个小的延迟,但这似乎也做了,是将在静止时间(5 秒)内发生的任何其他执行请求排队,然后将排队的命令输出一连串的活动。
显然,这遗漏了很大一部分,但
我考虑过使用以下变量做一些事情:
#gets current time since epoch as var0
set timer0 clock format [clock seconds] -format %s
#gets current time since epoch as var1
set timer1 clock format [clock seconds] -format %s
#calculates elapsed time since epoch in seconds, converts seconds to minutes
set split [ expr (($timer0 - $timer1)/60)/60 ]
if { $split > 2 } {
my_proc $maybe_1var $maybe_2vars $maybe_3vars
} else {
exit super gracefully
}
如果您愿意,我可以提供我当前代码的片段。它没有我想象的那么优雅,而且我不确定在 Tcl 中是否有更好的方法来做到这一点。