好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 利用Python實現定時程序的方法

利用Python實現定時程序的方法

熱門標簽:上海正規的外呼系統最新報價 外賣地址有什么地圖標注 企業彩鈴地圖標注 煙臺電話外呼營銷系統 銀川電話機器人電話 長春極信防封電銷卡批發 預覽式外呼系統 如何地圖標注公司 電銷機器人錄音要學習什么

定時器概念

什么是定時器呢?它是指從指定的時刻開始,經過一個指定時間,然后觸發一個事件,用戶可以自定義定時器的周期與頻率。

實現一個簡單的定時程序

方案一

在 Python 中,如何定義一個定時器函數呢?我們先看第一種方法。假設我們需要執行一個函數userCountFunc,這個函數需要每隔一個小時被執行一次。那么,我們可以這樣寫:

def main():
    startCronTask(userCountFunc, minutes=60)

if __name__ == '__main__':
    main()

如上面的代碼,我們在定義了一個 main 函數后,便定義了一個定時函數 startCronTask。第一個參數為函數名,第二個參數為時間,第二個參數表示多長時間后調用后面第一個參數的函數。第一個參數注意是函數對象,進行參數傳遞,用函數名(如 userCountFunc)表示該對象,不是函數執行語句 userCountFunc(),不然會報錯。那么,在實現這個函數時,需要引入定時功能,Python 中有一個定時任務模塊 BlockingScheduler:

from apscheduler.schedulers.blocking import BlockingScheduler

def startCronTask(task, **config):
    # BlockingScheduler
    scheduler = BlockingScheduler()
    scheduler.add_job(task, 'interval', **config)
    scheduler.start()

定義完一個調度模塊之后,實際的定時調度功能就完成了。接下來,需要具體實現定時執行的邏輯函數 userCountFunc:

def userCountFunc():
    logger.info('count user')
    ...

這樣,對于方案一,實現的簡單的定時功能就完成了。

方案二

方案一中介紹的是 Python 自帶的 BlockingScheduler 模塊,Python 中除了可以通過 BlockingScheduler,還通過線程實現定時器 timer,來簡單的看下代碼:

import threading

def timerFunc():
    print('Hello World~')

timer = threading.Timer(1, timerFunc)
timer.start()

在上面的代碼中,定時器函數 threading.Timer 主要有2個參數,參數意義與方案一類似,接下來執行這段程序:

Hello World~
      
Process finished with exit code 0

我們發現只執行一遍,程序就結束了,但顯然不是我們想要的結果。其實,我們看下 Time 類,有這樣的一句解釋性注釋:Call a function after a specified number of seconds,我們發現上面在執行后并未循環執行,所以需要修改下:

import threading

def timerFunc():
    print('Hello World~')
    global timer
    timer = threading.Timer(10.5, timerFunc)
    timer.start()

timer = threading.Timer(3, timerFunc)
timer.start()

此時,我們可以看到輸出結果:

Hello World~

Hello World~

Hello World~
...

這里需要注意的是:必須在定時器執行函數內部重復構造定時器,因為定時器構造后只執行1次,必須循環調用。

另外,在上面的代碼中,我們其實還可以看到:threading.Timer(5.5, timerFunc),定時器間隔單位是秒,可以是浮點數,如5.5,0.9等,在執行函數 timerFunc 內部和外部中給的值可以不同。如上例中第一次執行 timerFunc 是3秒后,后面的都是10.5秒后執行。

接下來,我們再看看如何再一定時間結束定時功能。我們可以使用cancel停止定時器的工作,如下例:

import threading

def timerFunc():
    print('Hello World~')
    global timer
    timer = threading.Timer(10.5, timerFunc)
    timer.start()

timer = threading.Timer(3, timerFunc)
timer.start()

time.sleep(60)
timer.cancel()

上面的代碼表示:在定時器按照一定時間執行后,執行過程耗時60秒后停止定時操作功能,退出。顯示結果為:

Hello World~

Hello World~

Hello World~

Hello World~

Hello World~
...

Process finished with exit code 0

到此這篇關于利用Python實現定時程序的方法的文章就介紹到這了,更多相關Python 定時程序內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python實現簡單的聊天小程序
  • 基于Python+Pyqt5開發一個應用程序
  • Python如何實現的簡單購物車程序
  • 結合Python網絡爬蟲做一個今日新聞小程序

標簽:佳木斯 湖北 西寧 珠海 盤錦 上饒 潮州 宜昌

巨人網絡通訊聲明:本文標題《利用Python實現定時程序的方法》,本文關鍵詞  利用,Python,實現,定時,程序,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《利用Python實現定時程序的方法》相關的同類信息!
  • 本頁收集關于利用Python實現定時程序的方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 脱光衣服| 久久久久精品亚洲AV梦乃| 精品人妻一区二区三区影院| 小黄车小视频| 国产人免费人成免费视频| 法国色情巜狂野性妓女在线观看 | 生而为欲h| 日本日韩欧美| 亚洲AV无码精品久久久久成精品 | 欧一美一色一伦一A片| 欧美日本三级| 风流少妇妇A片麻豆| 久久精品—区二区三区舞蹈李宗瑞| 国产一级毛片国语完整版| 做暧暧小视频免费观看高清在线| 秋霞电影网日韩| 青草青草久热精品视频Av| 人与狗zoo| 美女班主任露出奶头喂我乳我| 91香蕉国产线观看免费永久| 别摸了别揉了受不了快进来| 四虎永久在线精品波多野结衣| 日本19禁漫画无遮挡更衣室| 美女一级大片| 乌克兰美女a级正片| 亲子乱AV一区二区三区视频免费| 亚洲男人天堂影院| 国产精品扒开腿做爽爽的漫画男男| 日韩天天操| 日本Av高潮潮喷无码影视大全 | 我和放荡的村妇| 学长让我夹震蛋器自慰给他看 | 扒开粉嫩的小缝隙喷白浆| 后妈的春天全文免费阅读视频| 91青青草视频| p站视频在线观看| 女朋友一夹一夹的好爽| 国产福利91精品| 精品扒开腿做爽爽爽A片软件| 亚洲免费片| 黄视频在线播放|