前言
在弄爬蟲時有時候需要定時去爬一些東西,而自己又不可能守在那,這可咋整?於是乎,網上一通亂搜,可搜到了python中threading庫中的timer類可以實現定時執行程式,完成定時任務;於是又開始了學海無涯之路…
timer的中文意思是:定時器,顧名思義我們可以通過對time的呼叫來完成一些定時任務,比如定時爬蟲,定時推送等;timer是threading庫中的乙個類,而threading(執行緒)是python自帶的可以進行多執行緒程式設計的庫,無需安裝直接匯入就行。
使用timer時,timer有四個引數,如下
timer(interval, function, args=[ ], kwargs=)
引數介紹:
2.1 funtion函式無引數
from threading import timer
deffuntion()
:#乙個簡單的功能
for i in
range(10
):print
(i)#5秒後執行funtion函式
t = timer(
5, funtion)
#執行定時任務
t.start(
)
執行上面的程式,5秒後輸出如下結果
2.2 function函式有傳入引數
from threading import timer
deffuntion
(number)
:#乙個簡單的功能
for i in
range
(number)
:print
(i)#5秒後執行funtion函式
t = timer(
5, funtion,(6
,))#funtion的引數以元祖形式傳遞
#執行定時任務
t.start(
)
執行上面程式,5秒後輸出以下結果
2.3 實現每隔一段時間後,執行funtion函式
from threading import timer
deffuntion()
:#乙個簡單的功能
print
("you can!"
)def
run_task()
:#5秒後執行funtion函式
funtion(
) t = timer(
5, run_task)
#執行定時任務
t.start()
run_task(
)
呼叫run_task函式後(發現不呼叫run_task,也會發生下面的結果),結果如下
2.4 用cancel取消timer的執行
from threading import timer
deffuntion()
:#乙個簡單的功能
print
("you can!"
)t = timer(
5, funtion)
t.start(
)#cancel取消執行緒t的執行
t.cancel(
)
這裡呼叫了cancel()函式來取消執行緒t的執行,所以結果不會列印「you can!」
Timer實現原理
timer是乙個定時任務觸發裝置,設定任務,觸發延時和觸發間隔就可以定時執行任務。以下是個簡單的輸出任務,每隔1000ms執行一次。public class timerlearn timer.schedule timertask,0,1000 timer內部有個timerthread執行緒,初始化的...
ARMulator model之Timer的使用
上篇說明了系統自帶的interrupt控制模組的使用,這一篇講述下另外乙個重要的外圍模組timer。timer模組同樣也是系統自動載入的模組之一,其暫存器組對映的位置peripheral timer base為0x0a800000。timer模組的原始時鐘預設為20mhz。下面描述每個暫存器的用法 ...
如何基於windows實現python定時爬蟲
windows系統下使用任務計畫程式,linux下可以使用crontab命令新增自啟動計畫。這裡寫windows 10zljahrowr windows server 2016系統的設定方法。首先編寫乙個.bat指令碼。新建乙個txt,將下面三行 複製進去,main.py改成自己程式名字。保程式設計...