91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python怎么實現定時任務

發布時間:2021-04-02 09:37:22 來源:億速云 閱讀:166 作者:小新 欄目:開發技術

這篇文章主要介紹python怎么實現定時任務,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

用Python實現定時任務

有些時候我們需要每隔一段時間就要執行一段程序,或者是往復循環執行某一個任務。比如博主在上篇文章講的爬蟲一樣,在實現對某個目標進行在線爬取的話,也需要用到實時任務。

用Python實現定時任務的四種方法

  • while True: + sleep()

  • threading.Timer定時器

  • 調度模塊schedule

  • 任務框架APScheduler

定時要完成的Task(簡單定義下)

import datetime
def Task():
  now = datetime.datetime.now()
  ts = now.strftime('%Y-%m-%d %H:%M:%S')
  print(ts)

利用while True: + sleep()實現定時任務

第一個想到的肯定就行while:true + sleep組合了吧,簡單粗暴,實現如下

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

這種方法的缺點是只能實現同步任務,無法執行異步任務

利用threading.Timer定時器實現定時任務

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

出現的問題是,運行次數過多時,會出現報錯:Pyinstaller maximum recursion depth exceeded Error Resolution
達到最大遞歸深度,然后想到的是修改最大遞歸深度

sys.setrecursionlimit(100000000)

但是運行到達到最大CPU時,python會直接銷毀程序,涼涼0.0

利用調度模塊schedule實現定時任務

schedule是一個第三方輕量級的任務調度模塊,可以按照秒,分,小時,日期或者自定義事件執行時間
如果想執行多個任務,也可以添加多個task
代碼見下

import schedule
def scheduleMonitor():
  # 清空任務
  schedule.clear()
  # 創建一個按3秒間隔執行任務
  schedule.every(3).seconds.do(Task)
  # 創建一個按2秒間隔執行任務
  schedule.every(2).seconds.do(Task)
  while True:
    schedule.run_pending()

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

利用任務框架APScheduler實現定時任務

APScheduler是Python的一個定時任務框架,用于執行周期或者定時任務,該框架不僅可以添加、刪除定時任務,還可以將任務存儲到數據庫中,實現任務的持久化,使用起來非常方便。

from apscheduler.schedulers.blocking import BlockingScheduler
def APschedulerMonitor():
  # 創建調度器:BlockingScheduler
  scheduler = BlockingScheduler()
  scheduler.add_job(Task, 'interval', seconds=3, id='test_job1')
  # 添加任務,時間間隔5S
  scheduler.add_job(Task, 'interval', seconds=5, id='test_job2')
  scheduler.start()

總結

1:循環+sleep方式可以用來做簡單測試。
2:timer可以實現異步定時任務。
3:schedule可以定點定時執行,但是仍然需要while Ture配合,而且占用內存大。
4:APScheduler框架更加強大,可以直接在里面添加定點與定時任務,無可挑剔。

以上是“python怎么實現定時任務”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

泸州市| 博兴县| 黄冈市| 抚顺市| 界首市| 阳泉市| 永善县| 定结县| 海阳市| 疏附县| 云龙县| 通州市| 荆州市| 贡觉县| 西华县| 日土县| 伊吾县| 台山市| 涪陵区| 汽车| 巴里| 鹿泉市| 南乐县| 新巴尔虎左旗| 濉溪县| 咸宁市| 寿光市| 中方县| 沅陵县| 江源县| 武义县| 调兵山市| 宜丰县| 梨树县| 紫阳县| 招远市| 银川市| 德令哈市| 西平县| 车致| 荣昌县|