Python如何實(shí)現(xiàn)定時(shí)器功能
Timer: 隔一定時(shí)間調(diào)用一個(gè)函數(shù),如果想實(shí)現(xiàn)每隔一段時(shí)間就調(diào)用一個(gè)函數(shù)的話(huà),就要在Timer調(diào)用的函數(shù)中,再次設(shè)置Timer。Timer是Thread的一個(gè)派生類(lèi)
python中的線(xiàn)程提供了java線(xiàn)程功能的子集。
#!/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是一個(gè)Timer對(duì)象。delay一秒鐘之后執(zhí)行delayrun函數(shù)。
其中time.sleep函數(shù)是用來(lái)讓主線(xiàn)程暫停一點(diǎn)時(shí)間再繼續(xù)執(zhí)行。
實(shí)例擴(kuò)展:
Python3定時(shí)器任務(wù)代碼
import timeimport sysimport signalimport datetimeimport threading#定時(shí)器def schedule_update(): t = threading.Timer(0, event_func) t.setDaemon(True) t.start()#執(zhí)行函數(shù)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()#取時(shí)間點(diǎn)def delay_time(): # now time now_time = datetime.datetime.now() # tomorrow time 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 # get tomorrow 00:00 next_time = datetime.datetime.strptime(str(next_year)+'-'+str(next_month)+'-'+str(next_day)+' 00:00:00', '%Y-%m-%d %H:%M:%S') # get secondes delay_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)
到此這篇關(guān)于Python如何實(shí)現(xiàn)定時(shí)器功能的文章就介紹到這了,更多相關(guān)Python中的簡(jiǎn)單定時(shí)器實(shí)例內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. 使用Python webdriver圖書(shū)館搶座自動(dòng)預(yù)約的正確方法2. Python3 json模塊之編碼解碼方法講解3. ASP基礎(chǔ)知識(shí)VBScript基本元素講解4. python 使用事件對(duì)象asyncio.Event來(lái)同步協(xié)程的操作5. Python 合并拼接字符串的方法6. Python字符串到字節(jié)的轉(zhuǎn)換。雙反斜杠問(wèn)題7. Linux刪除系統(tǒng)自帶版本Python過(guò)程詳解8. ASP.NET MVC使用jQuery ui的progressbar實(shí)現(xiàn)進(jìn)度條9. Java Long類(lèi)型對(duì)比分析10. Python sublime安裝及配置過(guò)程詳解

網(wǎng)公網(wǎng)安備