按日期时间而不是时间间隔定期触发功能

时间:2014-06-09 02:25:21

标签: python

我希望每分钟0 second,30second启用我的功能触发器。

而不是使用time.sleep(30),因为脚本将运行数月并且有一些阻塞系统调用,

我希望在12:00:00, 12:00:30, 12:01:00

等特定时间内完成

我怎么能在Python 2.7上做到这一点

1 个答案:

答案 0 :(得分:0)

不确定你的函数是如何工作的,但是如果有任何类型的循环你可以使用if语句。

t = time.time()

while/for loop:
    ...
    if time.time() > t + 30:
        yourFunction()
        t = time.time()
    ...

编辑:

我的错,误读了。类似的方法但你可以使用日期时间,但最好不要查看chrontab。这个方法有点hacky,如果你的脚本很小并且可以每秒循环一次,那么这将是有效的,否则就去chrontab。

import datetime

t = datetime.datetime
run = True

while/for loop:
    ...
    if t.now().second % 30 == 0 and run == True:
        yourFunction()
        run = False
    if t.now().second % 30 == 1:
        run = True
    ...