0
点赞
收藏
分享

微信扫一扫

Python 3.X 中定时器(Timer)的使用


前言

每次要使用python的定时器的时候总是想着百度,干脆自己写一个记录一下:

使用的是两种方式实现,我一般喜欢用方式二Timer实现,下面看实现方式:

方式一:sched

准确的说,它是一个调度(延时处理机制),每次想要定时执行某任务都必须写入一个调度。

'''
使用sched模块实现的timer,sched模块不是循环的,一次调度被执行后就Over了,
如果想再执行,可以使用while循环的方式不停的调用该方法
'''
import time, sched

#被调度触发的函数
def event_func(msg):
print("Current Time:", time.strftime("%y-%m-%d %H:%M:%S"), 'msg:', msg)

def run_function():
#初始化sched模块的scheduler类
s = sched.scheduler(time.time, time.sleep)
#设置一个调度,因为time.sleep()的时间是一秒,所以timer的间隔时间就是sleep的时间,加上enter的第一个参数
s.enter(0, 2, event_func, ("Timer event.",))
s.run()

def timer1():
while True:
#sched模块不是循环的,一次调度被执行后就Over了,如果想再执行,可以使用while循环的方式不停的调用该方法
time.sleep(1)
run_function()

if __name__ == "__main__":
timer1()

方式二:Timer

'''
Timer类也是一次性触发的,思路和sched大概差不多
'''
import time
import threading

def timer_start():
t = threading.Timer(1, test_func, ("Parameter1",))
t.start()

def test_func(msg1):
print("I'm test_func,", msg1)
timer_start()

def timer2():
timer_start()
while True:
time.sleep(1)

if __name__ == "__main__":
timer2()

虽然说上面的两种现实看起来都很蠢,但是如果不借助第三方的库,可能也只能这样了.



举报

相关推荐

0 条评论