av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python 實(shí)現(xiàn)定時(shí)任務(wù)的四種方式

瀏覽:134日期:2022-06-23 15:20:52
用Python實(shí)現(xiàn)定時(shí)任務(wù)

有些時(shí)候我們需要每隔一段時(shí)間就要執(zhí)行一段程序,或者是往復(fù)循環(huán)執(zhí)行某一個(gè)任務(wù)。比如博主在上篇文章講的爬蟲(chóng)一樣,在實(shí)現(xiàn)對(duì)某個(gè)目標(biāo)進(jìn)行在線爬取的話,也需要用到實(shí)時(shí)任務(wù)。

用Python實(shí)現(xiàn)定時(shí)任務(wù)的四種方法 while True: + sleep() threading.Timer定時(shí)器 調(diào)度模塊schedule 任務(wù)框架APScheduler

定時(shí)要完成的Task(簡(jiǎn)單定義下)

import datetimedef Task(): now = datetime.datetime.now() ts = now.strftime(’%Y-%m-%d %H:%M:%S’) print(ts)利用while True: + sleep()實(shí)現(xiàn)定時(shí)任務(wù)

第一個(gè)想到的肯定就行while:true + sleep組合了吧,簡(jiǎn)單粗暴,實(shí)現(xiàn)如下

def loopMonitor(): while True: Task() # 3s檢查一次 time.sleep(3)

這種方法的缺點(diǎn)是只能實(shí)現(xiàn)同步任務(wù),無(wú)法執(zhí)行異步任務(wù)

利用threading.Timer定時(shí)器實(shí)現(xiàn)定時(shí)任務(wù)

from threading import Timerdef timerMonitor(): Task() t = Timer(3, timerMonitor) t.start()

出現(xiàn)的問(wèn)題是,運(yùn)行次數(shù)過(guò)多時(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ì)直接銷(xiāo)毀程序,涼涼0.0

利用調(diào)度模塊schedule實(shí)現(xiàn)定時(shí)任務(wù)

schedule是一個(gè)第三方輕量級(jí)的任務(wù)調(diào)度模塊,可以按照秒,分,小時(shí),日期或者自定義事件執(zhí)行時(shí)間如果想執(zhí)行多個(gè)任務(wù),也可以添加多個(gè)task代碼見(jiàn)下

import scheduledef scheduleMonitor(): # 清空任務(wù) schedule.clear() # 創(chuàng)建一個(gè)按3秒間隔執(zhí)行任務(wù) schedule.every(3).seconds.do(Task) # 創(chuàng)建一個(gè)按2秒間隔執(zhí)行任務(wù) schedule.every(2).seconds.do(Task) while True: schedule.run_pending()

但是他依然需要和while Ture配合使用,而且占用的CPU也比其他幾種多的多。

利用任務(wù)框架APScheduler實(shí)現(xiàn)定時(shí)任務(wù)

APScheduler是Python的一個(gè)定時(shí)任務(wù)框架,用于執(zhí)行周期或者定時(shí)任務(wù),該框架不僅可以添加、刪除定時(shí)任務(wù),還可以將任務(wù)存儲(chǔ)到數(shù)據(jù)庫(kù)中,實(shí)現(xiàn)任務(wù)的持久化,使用起來(lái)非常方便。

from apscheduler.schedulers.blocking import BlockingSchedulerdef APschedulerMonitor(): # 創(chuàng)建調(diào)度器:BlockingScheduler scheduler = BlockingScheduler() scheduler.add_job(Task, ’interval’, seconds=3, id=’test_job1’) # 添加任務(wù),時(shí)間間隔5S scheduler.add_job(Task, ’interval’, seconds=5, id=’test_job2’) scheduler.start()總結(jié)

1:循環(huán)+sleep方式可以用來(lái)做簡(jiǎn)單測(cè)試。2:timer可以實(shí)現(xiàn)異步定時(shí)任務(wù)。3:schedule可以定點(diǎn)定時(shí)執(zhí)行,但是仍然需要while Ture配合,而且占用內(nèi)存大。4:APScheduler框架更加強(qiáng)大,可以直接在里面添加定點(diǎn)與定時(shí)任務(wù),無(wú)可挑剔。所以,用誰(shuí)不用我說(shuō)了吧QAQ

以上就是python 實(shí)現(xiàn)定時(shí)任務(wù)的四種方式的詳細(xì)內(nèi)容,更多關(guān)于python 實(shí)現(xiàn)定時(shí)任務(wù)的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 久久久久久久网 | 九月丁香婷婷 | 亚洲成人a v | 日本黄色三级视频 | 天天澡天天狠天天天做 | 一级黄色在线观看 | 丁香综合网| 免费观看一区二区三区毛片 | 欧美国产视频 | 亚洲资源网 | 国产一级片免费观看 | 精品久久影院 | 放几个免费的毛片出来看 | 国产在线一区二区 | 日本高清网站 | 国产操操操| 四虎免费在线观看 | 欧美日韩a | 中国一级黄色录像 | 久久久亚洲一区 | 国产精品一品二品 | 黄网站视频 | 亚洲成a人片 | 日韩精品在线一区 | av三级在线观看 | 欧美久久久久久久久久 | 看毛片网站 | 国产精品欧美在线 | 天天干夜夜撸 | 玖草在线 | 成人免费网站黄 | 欧美二三区| 性欧美xxxx | 一级片在线观看视频 | 在线伊人网| 99久久精品国产一区二区成人 | 亚洲成人动漫在线观看 | 18成人免费观看网站 | 丁香婷婷色 | 91成人在线观看喷潮 | 91精品国自产在线观看 |