【发布时间】:2017-11-27 10:50:52
【问题描述】:
我想创建一个以指定时间间隔执行的函数,假设每 30 秒执行一次,时间是这样的:12:37:00.000000、12:37:30.000000、12:38:00.000000
现在最简单的方法是创建一个线程来运行一个函数,该函数有一个 while 循环,最后有一个 sleep(30),因此在最后等待 30 秒。我的应用程序将 24/7 运行,并且及时,假设从开始可能 2-3 小时,它将执行该功能的实际时间将是 X:X:00.5 或 X:X:33.5(因为有很多上面的代码sleep(30)),因此每 30 秒会稍微延迟我的工作,而在几个小时内,延迟会相当大。
我正在寻找一种优雅的设置方法,就像每 30 秒触发一次的警报一样,但总是恰好 30 秒,不多也不少,因为精度是必须的。
【问题讨论】:
-
您需要精确到什么程度? 1/5 秒够吗?
-
就是这样,1/5 秒根本不算多,但如果我每 30 秒失去 1/5 秒,那么在一两天内它加起来就是也许超过一秒钟。我需要高精度,这意味着即使运行了一年,它仍然必须在
X:X:00.000000处执行
标签: python multithreading datetime signals alarm