Python如何实现定时器功能

时间:2021-05-22

Timer: 隔一定时间调用一个函数,如果想实现每隔一段时间就调用一个函数的话,就要在Timer调用的函数中,再次设置Timer。Timer是Thread的一个派生类

python中的线程提供了java线程功能的子集。

#!/usr/bin/env pythonfrom threading import Timerimport timetimer_interval=1def delayrun(): print 'running't=Timer(timer_interval,delayrun)t.start()while True: time.sleep(0.1) print 'main running'

t是一个Timer对象。delay一秒钟之后执行delayrun函数。

其中time.sleep函数是用来让主线程暂停一点时间再继续执行。

实例扩展:

Python3定时器任务代码

import timeimport sysimport signalimport datetimeimport threading#定时器def schedule_update():t = threading.Timer(0, event_func)t.setDaemon(True)t.start()#执行函数def event_func():now_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')print(now_time)exec_update()#update_openvas_dbs_from_cache()interval_time = delay_time()t = threading.Timer(interval_time, event_func)t.setDaemon(True)t.start()#取时间点def delay_time():# now timenow_time = datetime.datetime.now()# tomorrow timenext_time = now_time + datetime.timedelta(days=+1)next_year = next_time.date().yearnext_month = next_time.date().monthnext_day = next_time.date().day# get tomorrow 00:00next_time = datetime.datetime.strptime(str(next_year)+"-"+str(next_month)+"-"+str(next_day)+" 00:00:00", "%Y-%m-%d %H:%M:%S")# get secondesdelay_time = (next_time - now_time).total_seconds()return delay_timedef quit_sys(signum, frame):sys.exit()#接收Cif __name__ == "__main__":try:signal.signal(signal.SIGINT, quit_sys)signal.signal(signal.SIGTERM, quit_sys)schedule_update()print("schedule_update server starting up...\nHit Ctrl-C to quit.\n")while 1:time.sleep(1)except Exception as e:print(e)

到此这篇关于Python如何实现定时器功能的文章就介绍到这了,更多相关Python中的简单定时器实例内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章