如何在60秒后运行Python任务但只有一次

时间:2012-04-03 22:26:14

标签: python wxpython python-2.7

我有一个Python任务,我第一次运行这个任务,我希望在60秒后运行相同的任务,但最后一次只运行一次。

2 个答案:

答案 0 :(得分:3)

第一次直接调用任务,第二次从计时器调用。对wx.CallLater的调用不会阻止,因此应用程序在计时器运行时仍保持响应。

do_task()
wx.CallLater(60 * 1000, do_task)

请参阅http://www.wxpython.org/docs/api/wx.CallLater-class.html

答案 1 :(得分:0)

如果你想要做两次差距,最简单的方法就是sleep一点:

from time import sleep

do_task()
sleep(60)
do_task()

请注意,如果您需要60秒,这可能不合适。

  

实际的暂停时间可能小于请求的时间,因为任何捕获的信号将在执行该信号的捕获例程后终止sleep()。此外,由于系统中其他活动的安排,暂停时间可能比任意数量的请求时间长。

在这种情况下,您可能希望在睡眠前存储时间并进行比较以确保已经过了适当的时间,例如,但在大多数情况下,它不需要那么精确。

请注意,这会暂停执行,如果您想要执行其他操作,则需要查看线程。