python 定時器
阿新 • • 發佈:2020-08-10
方法1:
1 from datetime import datetime 2 import time 3 4 def timer(n): 5 """ 6 這個方法的缺點是,只能執行固定間隔時間的任務,如果有定時任務就無法完成,比如固定每天上午6點鐘執行,並且sleep是一個阻塞函式,也就是說sleep著段時間,什麼都不能做。 7 :param n: 8 :return: 9 """ 10 while True: 11 print(datetime.now().strftime("%Y-%m-%d %H:%M:%S")) 12 time.sleep(n) 13 14 timer(3)
方法2:
1 import threading 2 from datetime import datetime 3 4 def printTime(n): 5 print(datetime.now().strftime("%Y-%m-%d %H:%M:%S")) 6 # 第一個引數表示多長時間後呼叫後面第二個引數指明的函式。第二個引數注意是函式物件,進行引數傳遞,用函式名(如printTime)表示該物件,不能寫成函式執行語句printTime(),不然會報錯。可以用type查看出兩者的區別7 t = threading.Timer(n, printTime, (n,)) 8 t.start() 9 10 #timer = threading.Timer(1, printTime) 11 #time.sleep(15) # 15秒後停止定時器 12 #timer.cancel() 13 14 15 printTime(2)