python定時任務 sched模組

2022-06-23 11:33:17 字數 1685 閱讀 3658

通過sched模組可以實現通過自定義時間,自定義函式,自定義優先順序來執行函式。

schedule = sched.scheduler( time.time,time.sleep)

schedule是乙個物件,叫什麼名字都可以。

schedule.enter(delay,priority,action,arguments)

delay:第乙個引數是乙個整數或浮點數,代表多少秒後執行這個action任務

priority:第二個引數是優先順序,0代表優先順序最高,1次之,2次次之,當

兩個任務是預定在同乙個時刻執行時,根據優先順序決定誰先執行。

action:第三個引數就是你要執行的任務,可以簡單理解成你要執行任務的函式的函式名

arguments:第四個引數是你要傳入這個定時執行函式名函式的引數,最好用括號包起來,如果只傳入乙個

引數的時候用括號包起來,該引數後面一定要加乙個逗號,如果不打逗號,會出現錯誤。

例如schedule.enter(delay, priority, action, (argument1,))

run()一直被阻塞,直到所有任務全部執行結束。每個任務在同一執行緒中執行,所以如果乙個任務執行時間大於

其他任務的等待時間,那麼其他任務會推遲任務的執行時間,這樣保證沒有任務丟失,但這些任務的呼叫時間會比設定的推遲。

import time

import sched

import datetime

schedule = sched.scheduler( time.time,time.sleep)

def event_fun1():

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

def event_fun2():

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

def event_fun3():

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

def func1(sec):

schedule.enter(sec,0,func1,(sec,))

event_fun1()

def func2(sec):

schedule.enter(sec, 0, func2, (sec,))

event_fun2()

def func3(sec):

schedule.enter(sec, 0, func3, (sec,))

event_fun3()

print ("start")

while true:

nt = datetime.datetime.now()

if nt.second == 0:

break

time.sleep(1)

schedule.enter(10,0,func1,(10,))

schedule.enter(30,0,func2,(30,))

schedule.enter(60,0,func3,(60,))

schedule.run()

print("end")

Python定時任務sched(一)

這裡介紹一下python中定時任務 sched import datetime import schedule import time import sched schedule2 sched.scheduler time.time,time.sleep def fun2 string1 time....

python定時任務 sched模組

通過sched模組可以實現通過自定義時間,自定義函式,自定義優先順序來執行函式。範例一1 import time 2import sched 34 schedule sched.scheduler time.time,time.sleep 56 deffunc string1 7print now ...

springboot之定時任務 Scheduled

1 pom.xml中匯入必要的依賴 org.springframework.boot spring boot starter parent 2.0.1.release org.springframework.boot spring boot starter web org.springframewo...