最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python使用schedule庫(kù)實(shí)現(xiàn)任務(wù)定時(shí)自動(dòng)化

 更新時(shí)間:2026年04月23日 09:37:25   作者:科雷learning  
在Python的自動(dòng)化工具庫(kù)中,schedule是一個(gè)簡(jiǎn)潔又強(qiáng)大的存在,無(wú)論是定時(shí)備份數(shù)據(jù)、周期性抓取網(wǎng)頁(yè),還是定期發(fā)送提醒郵件,schedule庫(kù)都能讓我們的代碼按計(jì)劃精準(zhǔn)執(zhí)行,今天我們就深入了解schedule庫(kù)的使用,需要的朋友可以參考下

引言

在Python的自動(dòng)化工具庫(kù)中,schedule是一個(gè)簡(jiǎn)潔又強(qiáng)大的存在。無(wú)論是定時(shí)備份數(shù)據(jù)、周期性抓取網(wǎng)頁(yè),還是定期發(fā)送提醒郵件,schedule庫(kù)都能讓我們的代碼按計(jì)劃精準(zhǔn)執(zhí)行。今天我們就深入了解schedule庫(kù)的使用,助我們成為任務(wù)調(diào)度小能手!

schedule庫(kù)核心函數(shù)速覽

schedule庫(kù)通過(guò)極簡(jiǎn)的語(yǔ)法,實(shí)現(xiàn)復(fù)雜的定時(shí)任務(wù)配置。使用前先通過(guò)pip命令安裝schedule庫(kù):pip install schedule

其核心函數(shù)和方法如下:

1. schedule.every():創(chuàng)建基礎(chǔ)調(diào)度任務(wù)

功能:開(kāi)啟一個(gè)新的調(diào)度任務(wù),后續(xù)可鏈?zhǔn)秸{(diào)用時(shí)間單位和執(zhí)行函數(shù)。

案例:創(chuàng)建一個(gè)每分鐘執(zhí)行一次的任務(wù)框架。

import schedule
# 創(chuàng)建1個(gè)調(diào)度任務(wù),默認(rèn)參數(shù)為1
schedule.every()

2. 時(shí)間單位設(shè)置函數(shù)

功能:指定任務(wù)執(zhí)行的時(shí)間間隔的屬性函數(shù):seconds、minutes、hours、days、weeks、monday、tuesday、wednesday、thursday、friday、saturday、sunday

案例:設(shè)置每5分鐘執(zhí)行一次的任務(wù)。

importschedule
# 每5分鐘執(zhí)行一次任務(wù) every函數(shù)參數(shù)填5,后續(xù)跟著minutes,表示每5分鐘
schedule.every(5).minutes.do(task_function)
# 每2小時(shí)執(zhí)行一次任務(wù) 
schedule.every(2).hours.do(task_function)
# 每3天執(zhí)行一次任務(wù)
schedule.every(3).days.do(task_function)
# 每周執(zhí)行一次任務(wù)
schedule.every().weeks.do(task_function)
# 每2周執(zhí)行一次任務(wù)
schedule.every(2).weeks.do(task_function)
# 每周1執(zhí)行一次任務(wù)
schedule.every().monday.do(task_function)
# 每周1和周3執(zhí)行一次任務(wù)
schedule.every().monday.wednesday.do(task_function)
#或者分開(kāi)兩個(gè)任務(wù)
schedule.every().monday.do(task_function)
schedule.every().wednesday.do(task_function)

3. at():精準(zhǔn)設(shè)置任務(wù)執(zhí)行的具體時(shí)間點(diǎn)

功能:在指定的時(shí)間點(diǎn)執(zhí)行任務(wù),常與時(shí)間周期函數(shù)(如days()、weeks())結(jié)合使用,支持設(shè)置時(shí)、分,格式為HH:MM(24 小時(shí)制) 。通過(guò)at功能,可以實(shí)現(xiàn) “每天早上 9 點(diǎn)”“每周五下午5點(diǎn)” 等精確的定時(shí)需求。

參數(shù):time_str接受一個(gè)字符串類型參數(shù),即具體時(shí)間點(diǎn),如"09:00"、"17:30" 。tz默認(rèn)為None,默認(rèn)采用當(dāng)前時(shí)區(qū)。如果傳入時(shí)區(qū)時(shí)需要安裝pytz庫(kù)。

#每天早上9點(diǎn)執(zhí)行
schedule.every().day.at("09:00").do(task_function)
#每周1早上9點(diǎn)執(zhí)行
schedule.every().monday.at("09:00").do(task_function)
#在東京時(shí)區(qū) 每周1早上9點(diǎn)執(zhí)行
schedule.every().monday.at("09:00","Asia/Tokyo").do(task_function)

4. do():指定要執(zhí)行的函數(shù)

功能:關(guān)聯(lián)具體的Python函數(shù),在達(dá)到設(shè)定時(shí)間時(shí)執(zhí)行。

案例:執(zhí)行打印當(dāng)前時(shí)間的函數(shù)

import schedule
import time
def print_current_time():
    print(time.strftime("%Y-%m-%d %H:%M:%S"))
# 每10秒打印一次當(dāng)前時(shí)間
schedule.every(10).seconds.do(print_current_time)

5. run_pending():檢查并執(zhí)行待處理任務(wù)

功能:檢查是否有到期任務(wù),若有則執(zhí)行,需在循環(huán)中持續(xù)調(diào)用。

案例:持續(xù)運(yùn)行任務(wù)調(diào)度循環(huán)

import schedule
import time
def task():
    print("任務(wù)執(zhí)行!")
schedule.every(2).seconds.do(task)
while True:
    schedule.run_pending()

6. clear():清除所有任務(wù)

功能:刪除所有已設(shè)置的調(diào)度任務(wù)。

案例:清空所有定時(shí)任務(wù)

import schedule
# 設(shè)置兩個(gè)任務(wù)
schedule.every(1).minutes.do(task1)
schedule.every(2).minutes.do(task2)
# 清空所有任務(wù)
schedule.clear()

7. cancel_job(job):取消特定任務(wù)

功能:移除指定的調(diào)度任務(wù),job為do()方法的返回值。

案例:取消特定任務(wù)

import schedule
def task():
    print("任務(wù)執(zhí)行!")
job = schedule.every(3).seconds.do(task)
#取消任務(wù)
schedule.cancel_job(job)

二、案例

案例 1:定時(shí)發(fā)送郵件提醒

import schedule
import time
import smtplib
from email.mime.text import MIMEText
def send_email():
    msg = MIMEText('這是定時(shí)發(fā)送的郵件提醒!', 'plain', 'utf-8')
    msg['Subject'] = '定時(shí)郵件'
    msg['From'] = 'xxx@xxx.com'
    msg['To'] ='xxx@xxx.com'
    try:
        server = smtplib.SMTP('smtp.qq.com', 587)
        server.starttls()
        server.login(msg['From'], 'xxxpassword')
        server.sendmail(msg['From'],msg['To'], msg.as_string())
        server.quit()
        print("郵件發(fā)送成功!")
    except Exception as e:
        print(f"郵件發(fā)送失敗: {e}")
# 每天早上8點(diǎn)發(fā)送郵件
schedule.every().day.at("08:00").do(send_email)
while True:
    schedule.run_pending()
    time.sleep(1)

案例 2:實(shí)現(xiàn)定時(shí)數(shù)據(jù)庫(kù)備份

import schedule
import time
import subprocess
def backup_data():
    backup_command = "mysqldump -u username -ppassword database_name > backup.sql"
    try:
        subprocess.run(backup_command, shell=True, check=True)
        print("數(shù)據(jù)庫(kù)備份成功!")
    except subprocess.CalledProcessError as e:
        print(f"數(shù)據(jù)庫(kù)備份失敗: {e}")
# 每隔2天執(zhí)行一次數(shù)據(jù)備份任務(wù)
schedule.every(2).days.do(backup_data)
while True:
    schedule.run_pending()
    time.sleep(1)

三、避坑指南

1.循環(huán)阻塞問(wèn)題

問(wèn)題:schedule.run_pending()需在循環(huán)中調(diào)用,但循環(huán)可能會(huì)阻塞主線程。

解決:可以使用多線程或多進(jìn)程運(yùn)行調(diào)度循環(huán),避免影響其他程序執(zhí)行。例如:

import schedule
import time
import threading
def run_schedule():
    while True:
        schedule.run_pending()
        time.sleep(1)
# 啟動(dòng)調(diào)度循環(huán)線程 不影響主線程
schedule_thread = threading.Thread(target=run_schedule)
schedule_thread.start()

2.時(shí)區(qū)與時(shí)間格式

問(wèn)題:使用at()方法設(shè)置時(shí)間時(shí),默認(rèn)使用系統(tǒng)時(shí)區(qū),可能與預(yù)期不符。

解決:如需跨時(shí)區(qū)調(diào)度,可結(jié)合pytz庫(kù)進(jìn)行時(shí)區(qū)轉(zhuǎn)換,確保時(shí)間準(zhǔn)確。

一些常用見(jiàn)時(shí)區(qū):

  1. 亞洲時(shí)區(qū):Asia/Shanghai:中國(guó)上海(北京時(shí)間)

                   Asia/Tokyo:日本東京時(shí)區(qū) 

                   Asia/Kolkata:印度加爾各答時(shí)區(qū)

2. 美洲時(shí)區(qū):America/New_York:美國(guó)紐約時(shí)區(qū)

                  America/Los_Angeles:美國(guó)洛杉磯時(shí)區(qū)

                  America/Toronto:加拿大多倫多時(shí)區(qū)

3. 歐洲時(shí)區(qū):Europe/London:英國(guó)倫敦時(shí)區(qū)

                  Europe/Paris:法國(guó)巴黎時(shí)區(qū) 

                  Europe/Moscow:俄羅斯莫斯科時(shí)區(qū)

4. 大洋洲時(shí)區(qū):Australia/Sydney:澳大利亞悉尼時(shí)區(qū)

                    Pacific/Auckland:新西蘭奧克蘭時(shí)區(qū)

5. 非洲時(shí)區(qū):Africa/Cairo:埃及開(kāi)羅時(shí)區(qū) 

                  Africa/Johannesburg:南非約翰內(nèi)斯堡時(shí)區(qū)      

掌握schedule庫(kù)的這些要點(diǎn),我們就就能輕松實(shí)現(xiàn)各類任務(wù)的定時(shí)自動(dòng)化。無(wú)論是個(gè)人項(xiàng)目還是工作中的流程優(yōu)化,它都能成為你的得力助手!如果在使用過(guò)程中遇到問(wèn)題,歡迎在評(píng)論區(qū)留言交流,謝謝大家的閱讀!

以上就是Python使用schedule庫(kù)實(shí)現(xiàn)任務(wù)定時(shí)自動(dòng)化的詳細(xì)內(nèi)容,更多關(guān)于Python schedule庫(kù)任務(wù)定時(shí)自動(dòng)化的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Opencv-Python圖像透視變換cv2.warpPerspective的示例

    Opencv-Python圖像透視變換cv2.warpPerspective的示例

    今天小編就為大家分享一篇關(guān)于Opencv-Python圖像透視變換cv2.warpPerspective的示例,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-04-04
  • Python中的變量及簡(jiǎn)單數(shù)據(jù)類型應(yīng)用

    Python中的變量及簡(jiǎn)單數(shù)據(jù)類型應(yīng)用

    這篇文章主要介紹了Python中的變量及簡(jiǎn)單數(shù)據(jù)類型應(yīng)用,簡(jiǎn)單的數(shù)據(jù)類型包括字符串和數(shù)字,更多詳細(xì)內(nèi)容,需要的小伙伴可以參考一下
    2022-03-03
  • python中reversed與reverse的區(qū)別解析

    python中reversed與reverse的區(qū)別解析

    reverse()是python中列表的一個(gè)內(nèi)置方法(在字典、字符串和元組中沒(méi)有這個(gè)內(nèi)置方法),用于列表中數(shù)據(jù)的反轉(zhuǎn),這篇文章主要介紹了python中reversed與reverse的區(qū)別,需要的朋友可以參考下
    2023-03-03
  • Python的flask常用函數(shù)route()

    Python的flask常用函數(shù)route()

    這篇文章主要介紹了Python的flask常用函數(shù)route(),文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-07-07
  • 在keras下實(shí)現(xiàn)多個(gè)模型的融合方式

    在keras下實(shí)現(xiàn)多個(gè)模型的融合方式

    這篇文章主要介紹了在keras下實(shí)現(xiàn)多個(gè)模型的融合方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-05-05
  • Python中的支持向量機(jī)SVM的使用(附實(shí)例代碼)

    Python中的支持向量機(jī)SVM的使用(附實(shí)例代碼)

    這篇文章主要介紹了Python中的支持向量機(jī)SVM的使用(附實(shí)例代碼),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Python獲取C++中返回的char*字段的兩種思路

    Python獲取C++中返回的char*字段的兩種思路

    有時(shí)候需要獲取C++函數(shù)中返回來(lái)的不定長(zhǎng)的char*字符串,本文小編為大家找到了兩種解決問(wèn)題的思路,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-04-04
  • python curl2pyreqs 生成接口腳本實(shí)戰(zhàn)教程

    python curl2pyreqs 生成接口腳本實(shí)戰(zhàn)教程

    這篇文章主要介紹了python curl2pyreqs 生成接口腳本實(shí)戰(zhàn)教程,首先下載 curl2pyreqs 庫(kù),打開(kāi)調(diào)試模式,在Network這里獲取接口的cURL,需要的朋友可以參考下
    2023-10-10
  • Python hashlib和hmac模塊使用方法解析

    Python hashlib和hmac模塊使用方法解析

    這篇文章主要介紹了Python hashlib和hmac模塊使用方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-12-12
  • Python 查看文件的讀寫權(quán)限方法

    Python 查看文件的讀寫權(quán)限方法

    下面小編就為大家分享一篇Python 查看文件的讀寫權(quán)限方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01

最新評(píng)論

普定县| 饶河县| 若尔盖县| 桂阳县| 东丽区| 札达县| 临澧县| 饶平县| 禹城市| 仙游县| 淮阳县| 湾仔区| 房产| 汝阳县| 天台县| 丹凤县| 平远县| 通化市| 公安县| 化州市| 新安县| 杭锦旗| 敦化市| 株洲市| 天全县| 遂溪县| 浑源县| 莱西市| 武安市| 桑植县| 股票| 磐安县| 台山市| 彰武县| 札达县| 达州市| 赤峰市| 黔江区| 临邑县| 定日县| 平顶山市|