一、time.sleep()
import time
def task():
print(f'任務執(zhí)行時間:{time.strftime("%Y-%m-%d %H:%M:%S")}')
def loop_task():
while True:
task()
time.sleep(5)
loop_task()
- 優(yōu)點:實現(xiàn)簡單,易于理解。
- 缺點:只能設(shè)定間隔,不能指定具體的時間(如每天上午8點執(zhí)行)。同時,sleep()期間程序處于阻塞狀態(tài),無法處理其他任務。
二、threading.Timer
- 優(yōu)點:可以實現(xiàn)異步執(zhí)行,支持多個定時任務。
- 缺點:每次需要重復執(zhí)行時,都需要重新設(shè)置Timer,且join()方法會阻塞主線程,影響性能
import threading
from time import sleep
def task():
print("任務執(zhí)行中...")
# 這里放置你的任務代碼
def run_task():
threading.Timer(5.0, run_task).start() # 設(shè)置任務間隔為5秒
task()
# 啟動定時任務
run_task()
# 以下是程序運行時的其他代碼,比如你的主線程邏輯
def main_task():
print("我是主線程")
while True:
main_task()
sleep(2)

image.png
三、python定時器庫
略