中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

Python定時執行程序問題怎么解決

發布時間:2023-05-05 14:58:54 來源:億速云 閱讀:123 作者:iii 欄目:開發技術

這篇“Python定時執行程序問題怎么解決”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Python定時執行程序問題怎么解決”文章吧。

    Python定時執行程序(schedule)

    使用schedule庫

    import schedule
    import time
    def job():
        print("I'm working...")
    schedule.every(10).seconds.do(job) # 每10秒執行一次
    schedule.every().wednesday.at("13:15").do(job) # 每周三13點15執行
    schedule.every(10).minutes.do(job) # 每10分鐘執行一次
    schedule.every().hour.do(job) # 每小時執行一次
    schedule.every().day.at("10:30").do(job) # 每天十點半執行
    schedule.every(5).to(10).minutes.do(job) # 每5-10分鐘隨機執行一次
    schedule.every().monday.do(job) # 每周一執行
    schedule.every().minute.at(":17").do(job) # 每分鐘的17秒執行一次
    while True:
        schedule.run_pending() # 運行所有可運行的任務

    如果是要定在4:30執行,一定要寫schedule.every().day.at("04:30").do(job)

    而不能只寫schedule.every().day.at("4:30").do(job)

    注意,如果程序執行的時間要比你設定的時間間隔短,就是下一次定時程序開始執行的時候你上一次程序還沒有執行完的話,就會新開進程。

    進程堆疊多了就會成災難

    python定時執行任務(schedule)時間延遲踩坑實錄

    通過schedule設置定時執行某個任務

    import schedule
    import time
    # 定義某個任務
    def job():
        ...
    # 設置執行時間
    schedule.every().seconds.do(job) # 每秒執行一次任務
    schedule.every().minutes.do(job) # 每分鐘執行一次任務
    schedule.every().hour.do(job) # 每小時執行一次任務
    # 可以指定具體時間間隔
    schedule.every(10).minutes.do(job) # 每10分鐘執行一次任務
    # 設置每天某一時刻執行
    schedule.every().day.at("05:15").do(job) # 每天凌晨5點15分執行任務
    # 設置星期幾執行
    schedule.every().monday.at("05:15").do(job) # 每周一凌晨5點15分執行任務
    while True:
        schedule.run_pending() # 運行所有可運行的任務

    踩坑問題

    第一個注意的點是,你要先在手動運行程序來開啟服務(此時程序會暫停),然后才會在指定時間繼續執行。

    第二個注意的點是,在使用時,因為程序運行時間的存在,會出現時間延遲問題。比如通過代碼設置每10分鐘跑一次,

    schedule.every(10).minutes.do(job) # 每10分鐘執行一次任務

    結果出現

    Python定時執行程序問題怎么解決

    但是即下一次執行時間是從上一次程序運行結束時間+10min來的,而我希望的應該是從上一次程序開始運行+10min,即正確的應該是10:20:21,這樣下去會導致時間延遲越來越大。

    解決方法

    只需要加上一個具體時刻(這里設置的是15s):

    schedule.every(10).minutes.at(":15").do(job) # 每10分鐘過15s執行程序

    也就是說,在10:00:21開啟服務,

    第一次執行 10:10:15,
    第二次執行 10:20:15,
    第三次執行 10:30:15,
    …

    這樣就解決了程序運行時間導致的時間延遲問題。

    注意!!! 首次開啟服務,一定要在當前時間的15秒之后運行程序,才是正常的。

    比如在10:00:08開啟服務,下一次會在10:09:15分執行(異常)

    比如在10:00:21開啟服務,下一次會在10:10:15分執行(正常)

    以上就是關于“Python定時執行程序問題怎么解決”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

    向AI問一下細節

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

    AI

    左贡县| 长泰县| 屯留县| 扎赉特旗| 永泰县| 古丈县| 凤冈县| 金昌市| 阳曲县| 尚义县| 临漳县| 孟连| 富宁县| 德兴市| 运城市| 墨江| 礼泉县| 阜宁县| 剑阁县| 苏州市| 同心县| 赣榆县| 沙坪坝区| 安达市| 金川县| 晴隆县| 高雄县| 衡水市| 本溪市| 东至县| 济宁市| 大竹县| 九寨沟县| 阆中市| 犍为县| 九龙县| 邵阳市| 吉安县| 浦东新区| 香港| 芜湖县|