sched模塊學習

sched模塊實現了一個時間調度程序,該調度程序可以通過單線程執行來處理按照時間尺度進行調度的事件。
  • 通過調用scheduler.enter(delay,priority,func,args)函數,可以將一個任務添加到任務隊列里面,當指定的時間到了,就會執行任務(func函數)。

  • 參數說明

    • delay:任務的間隔時間。
    • priority:如果幾個任務被調度到相同的時間執行,將按照priority的增序執行這幾個任務。
    • func:要執行的任務函數
    • args:func的參數

樣例一

import time,sched
 
#周期性執行給定的任務
 
#初始化sched模塊的scheduler類
#第一個參數是一個可以返回時間戳的函數,第二個參數可以在定時未到達之前阻塞。
s = sched.scheduler(time.time,time.sleep)
 
#被周期性調度觸發的函數
def event_func1():
    print "func1 Time:",time.time()
     
def perform1(inc):
    s.enter(inc,0,perform1,(inc,))
    event_func1()
    
def event_func2():
    print "func2 time:",time.time()
    
def perform2(inc):
    s.enter(inc,0,perform2,(inc,))
    event_func2()
    
def mymain(func,inc=2):
    if func == '1':
        s.enter(0,0,perform1,(10,))#每10秒鐘執行perform1
    if func == '2':
        s.enter(0,0,perform2,(20,))#每20秒執行perform2
 
if __name__ == "__main__":
    mymain('1')
    mymain('2')
    s.run()

樣例二

import sched, time
s = sched.scheduler(time.time, time.sleep)
def do_something(sc): 
    print "Doing stuff..."
    # do your stuff
    s.enter(60, 1, do_something, (sc,))

s.enter(60, 1, do_something, (s,))
s.run()
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Linux 進程管理與程序開發 進程是Linux事務管理的基本單元,所有的進程均擁有自己獨立的處理環境和系統資源,...
    JamesPeng閱讀 2,508評論 1 14
  • 完全公平調度CFS CFS(Completely Fair Scheduler)試圖按照對 CPU 時間的 “最大...
    batbattle閱讀 3,472評論 0 5
  • 定時任務 實現定時任務的方法有很多,接下來我們針對各種方法對比下優缺點。 1.循環sleep: 優點:最簡單的方式...
    大金葉子閱讀 571評論 0 0
  • 寫在前面的話 代碼中的# > 表示的是輸出結果 輸入 使用input()函數 用法 注意input函數輸出的均是字...
    FlyingLittlePG閱讀 2,870評論 0 8
  • 草在結它的種子 風在搖它的葉子 我們站著,不說話 就十分美好 顧城
    野里Kay閱讀 191評論 0 0