python之Timer實現定時任務

2021-10-08 10:52:45 字數 2017 閱讀 1330

前言

在弄爬蟲時有時候需要定時去爬一些東西,而自己又不可能守在那,這可咋整?於是乎,網上一通亂搜,可搜到了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改成自己程式名字。保程式設計...