python執行定時任務

2021-10-01 17:06:33 字數 2417 閱讀 8928

python執行定時任務,首先如果是在linux系統下,完全沒必要使用python的定時任務模組了,因為linux有自帶的強大的crontab模組,那麼接下來就講一講windows下python的定時任務怎麼來執行。其實windows系統也有自己的定時任務,詳情可見作者的另一篇部落格。

一、暴力的定時任務:

簡單暴力,直接運用time模組的sleep函式,這個大家比較熟悉,這裡不做詳細的說明。

from datetime import datetime

import time

'''每個 10 秒列印當前時間。

'''def timedtask():

while true:

print(datetime.now().strftime("%y-%m-%d %h:%m:%s"))

time.sleep(10)

if __name__ == '__main__':

timedtask()

二、運用python執行緒的timer模組:

def timedtask():

'''第乙個引數: 延遲多長時間執行任務(單位: 秒)

第二個引數: 要執行的任務, 即函式

第三個引數: 呼叫函式的引數(tuple)

'''timer(10, task, ()).start()

# 定時任務

def task():

print(datetime.now().strftime("%y-%m-%d %h:%m:%s"))

if __name__ == '__main__':

timedtask()

這個模組雖然可以用,但是有乙個弊端就是只會執行一次,不會迴圈往復的無限執行下去

三、第三種方式是使用標準庫中sched模組。sched 是事件排程器,它通過scheduler類來排程事件,從而達到定時執行任務的效果。

sched庫使用起來也是非常簡單。

1)首先構造乙個sched.scheduler

它接受兩個引數:timefuncdelayfunc。timefunc 應該返回乙個數字,代表當前時間,delayfunc 函式接受乙個引數,用於暫停執行的時間單元。

一般使用預設引數就行,即傳入這兩個引數time.timetime.sleep.當然,你也可以自己實現時間暫停的函式。

2)新增排程任務

scheduler提供了兩個新增排程任務的函式:

該函式可以延遲一定時間執行任務。delay表示延遲多長時間執行任務,單位是秒。priority為優先順序,越小優先順序越大。兩個任務指定相同的延遲時間,優先順序大的任務會向被執行。action即需要執行的函式,argumentkwargs分別是函式的位置和關鍵字引數。

新增一項任務,但這個任務會在time這時刻執行。因此,time是絕對時間.其他引數用法與enter()中的引數用法是一致。

3)把任務執行起來

呼叫scheduler.run()函式就完事了。

下面是 sche 使用的簡單示例:

import schedule

import time

def job():

print("i'm working...")

schedule.every(10).seconds.do(job) # 每10秒執行一次

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().wednesday.at("13:15").do(job) # 每週三13點15執行

schedule.every().minute.at(":17").do(job) # 每個小時的17分執行一次

while true:

schedule.run_pending() # 執行所有可執行的任務

time.sleep(1)

可以根據自己的情況合適的選擇以上的函式執行定時任務

python執行定時任務

一,當你想讓你某個方法在幾秒甚至更長的時間內執行後執行一次,你可以這樣做 import time from threading import timer defprint time enter time print now is time.time enter the box time is ent...

Python執行定時任務

python使用內建庫和第三方庫執行定時任務。sched相當於乙個延時處理任務 schedule是簡單明瞭的乙個第三方定時任務庫,需要先pip安裝一下 乙個很好的例子 import schedule import time 定義你要週期執行的函式 defjob print i m working.s...

python定時任務,隔月執行,隔定時執行

blockingscheduler定時任務 from apscheduler.schedulers.blocking import blockingscheduler from datetime import datetime 首先看看周一到周五定時執行任務 輸出時間 def job print d...