Python中threading.Timer()定時(shí)器實(shí)現(xiàn)定時(shí)任務(wù)
timer最基本理解就是定時(shí)器,可以啟動(dòng)多個(gè)定時(shí)任務(wù),這些定時(shí)器任務(wù)是異步執(zhí)行,所以不存在等待順序執(zhí)行問題。
Timer方法 | 說明 |
---|---|
Timer(interval, function, args=None, kwargs=None) | 創(chuàng)建定時(shí)器 |
cancel() | 取消定時(shí)器 |
start() | 使用線程方式執(zhí)行 |
join(self, timeout=None) | 等待線程執(zhí)行結(jié)束 |
1、單線程執(zhí)行
示例代碼:
from datetime import datetime from threading import Timer def task(): now = datetime.now() ts = now.strftime("%Y-%m-%d %H:%M:%S") print(ts) def func(): task() t = Timer(3, func) t.start() func()
運(yùn)行結(jié)果:
優(yōu)缺點(diǎn):可以實(shí)現(xiàn)異步任務(wù),是非阻塞的,但當(dāng)運(yùn)行次數(shù)過多時(shí),會(huì)出現(xiàn)報(bào)錯(cuò):Pyinstaller maximum recursion depth exceeded Error Resolution 達(dá)到最大遞歸深度,然后想到的是修改最大遞歸深度,
sys.setrecursionlimit(100000000)
但是運(yùn)行到達(dá)到最大CPU時(shí),python會(huì)直接銷毀程序。
2、多線程執(zhí)行
示例代碼:
from datetime import datetime from threading import Timer import threading def task(): now = datetime.now() ts = now.strftime("%Y-%m-%d %H:%M:%S") print(ts) def func(): task() t = Timer(3, func) t.start() if __name__ == '__main__': for i in range(3): thread = threading.Thread(None, func) thread.start()
運(yùn)行結(jié)果:
到此這篇關(guān)于Python中threading.Timer()定時(shí)器實(shí)現(xiàn)定時(shí)任務(wù)的文章就介紹到這了,更多相關(guān)threading.Timer()定時(shí)器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PyCharm設(shè)置Ipython交互環(huán)境和宏快捷鍵進(jìn)行數(shù)據(jù)分析圖文詳解
這篇文章主要介紹了PyCharm設(shè)置Ipython交互環(huán)境和宏快捷鍵進(jìn)行數(shù)據(jù)分析圖文詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04如何利用python web框架做文件流下載的實(shí)現(xiàn)示例
這篇文章主要介紹了如何利用python web框架做文件流下載的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06python中日期和時(shí)間格式化輸出的方法小結(jié)
這篇文章主要介紹了python中日期和時(shí)間格式化輸出的方法,實(shí)例總結(jié)了Python常見的日期與事件操作技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-03-03python讀取word 中指定位置的表格及表格數(shù)據(jù)
這篇文章主要介紹了python讀取word 中指定位置的表格及表格數(shù)據(jù),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2019-10-10Python實(shí)現(xiàn)隨機(jī)游走的示例代碼
隨機(jī)游走是一個(gè)數(shù)學(xué)對象,稱為隨機(jī)或隨機(jī)過程,它描述了一條路徑,該路徑由一些數(shù)學(xué)空間上的一系列隨機(jī)步驟組成,下面我們就來學(xué)習(xí)一下Python如何實(shí)現(xiàn)隨機(jī)游走的吧2023-12-12Python3.5實(shí)現(xiàn)的羅馬數(shù)字轉(zhuǎn)換成整數(shù)功能示例
這篇文章主要介紹了Python3.5實(shí)現(xiàn)的羅馬數(shù)字轉(zhuǎn)換成整數(shù)功能,涉及Python字符串遍歷與數(shù)值運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2019-02-02Python技法之簡單遞歸下降Parser的實(shí)現(xiàn)方法
遞歸下降解析器可以用來實(shí)現(xiàn)非常復(fù)雜的解析,下面這篇文章主要給大家介紹了關(guān)于Python技法之簡單遞歸下降Parser的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05