python sched_python中的crontab ————sched标准库 | 学步园
可以做計劃任務,就是在指定的延時之后執行一段程序。
sched.scheduler(timefunc, delayfunc)
接受兩個參數,timefunc必須在沒有參數的情況下也能調用,返回延時數字(單位無所謂)。delayfunc接受一個參數,即為timefunc的返回值,并按照這個返回值進行延時。每當有一個event運行之后delay都會被以0為參數調用,這就允許在多線程程序中的其它進程有機會運行。
例子:
# -*-coding: cp936 -*-
import sched
import time
#注冊調度器,time.time用來產生時間,time.sleep()則做實際的延時工作。
s = sched.scheduler(time.time, time.sleep)
#要運行的事件
def event(count):
print u'事件開始運行,當前時間:', time.time(), '調用enter的參數:', count
print u'程序開始運行,當前時間:', time.time()
s.enter(1, 1, event, ('1,1',))
s.enter(2, 1, event, ('2,1',))
s.enter(3, 2, event, ('3,2',))
s.enter(3, 1, event, ('3,1',))
s.run()
其中用到了scheduler的enter和run方法。
enter的參數分別為:
代表延時的數字
優先級
要調用的函數(事件)
事件函數要接受的參數元組
第三個和第四個事件延時都為3,但是優先級不同,所以優先級較高(數字越小優先級越高)的事件將會先執行。以上程序的執行結果為:
程序開始運行,當前時間: 1244376725.83
事件開始運行,當前時間: 1244376726.84 調用enter的參數: 1,1
事件開始運行,當前時間: 1244376727.84 調用enter的參數: 2,1
事件開始運行,當前時間: 1244376728.84 調用enter的參數: 3,1
事件開始運行,當前時間: 1244376728.88 調用enter的參數: 3,2
PyMOTW:
介紹了由于有“大事件”而造成多個事件重疊的情況,在另外一個線程中cancel事件的代碼。
總結
以上是生活随笔為你收集整理的python sched_python中的crontab ————sched标准库 | 学步园的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nosql数据库特点与区别?常见的
- 下一篇: windows 新版skia编译 版本号