Python如何实现定时器功能
Timer:隔一定时间调用一个函数,如果想实现每隔一段时间就调用一个函数的话,就要在Timer调用的函数中,再次设置Timer。Timer是Thread的一个派生类
python中的线程提供了java线程功能的子集。
#!/usr/bin/envpython fromthreadingimportTimer importtime timer_interval=1 defdelayrun(): print'running' t=Timer(timer_interval,delayrun) t.start() whileTrue: time.sleep(0.1) print'mainrunning'
t是一个Timer对象。delay一秒钟之后执行delayrun函数。
其中time.sleep函数是用来让主线程暂停一点时间再继续执行。
实例扩展:
Python3定时器任务代码
importtime
importsys
importsignal
importdatetime
importthreading
#定时器
defschedule_update():
t=threading.Timer(0,event_func)
t.setDaemon(True)
t.start()
#执行函数
defevent_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()
#取时间点
defdelay_time():
#nowtime
now_time=datetime.datetime.now()
#tomorrowtime
next_time=now_time+datetime.timedelta(days=+1)
next_year=next_time.date().year
next_month=next_time.date().month
next_day=next_time.date().day
#gettomorrow00:00
next_time=datetime.datetime.strptime(str(next_year)+"-"+str(next_month)+"-"+str(next_day)+"00:00:00","%Y-%m-%d%H:%M:%S")
#getsecondes
delay_time=(next_time-now_time).total_seconds()
returndelay_time
defquit_sys(signum,frame):
sys.exit()
#接收C
if__name__=="__main__":
try:
signal.signal(signal.SIGINT,quit_sys)
signal.signal(signal.SIGTERM,quit_sys)
schedule_update()
print("schedule_updateserverstartingup...\nHitCtrl-Ctoquit.\n")
while1:
time.sleep(1)
exceptExceptionase:
print(e)
到此这篇关于Python如何实现定时器功能的文章就介绍到这了,更多相关Python中的简单定时器实例内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!