Python事件调度器定时任务sched
生活随笔
收集整理的這篇文章主要介紹了
Python事件调度器定时任务sched
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
文章目錄
- 簡介
- 初試
- 解析
- 參考文獻
簡介
sched是Python的內(nèi)置模塊,用于事件調(diào)度,可在安全的在多線程環(huán)境中輕松實現(xiàn)定時任務(wù)。
但該方法會阻塞線程,直到所有被調(diào)度的任務(wù)都執(zhí)行完成。
初試
import time import scheds = sched.scheduler(time.time, time.sleep)def print_time(a='default'):print("From print_time", time.time(), a)def print_some_times():print(time.time())s.enter(10, 1, print_time)s.enter(5, 2, print_time, argument=('positional',))s.enter(5, 1, print_time, kwargs={'a': 'keyword'})print(s.queue)s.run()print(time.time())print_some_times() # 1607676900.9483116 # From print_time 1607676905.9483757 keyword # From print_time 1607676905.9483757 positional # From print_time 1607676910.9485233 default # 1607676910.9485233解析
主要使用調(diào)度器對象 sched.scheduler
調(diào)度器對象初始化方法 def __init__(self, timefunc=_time, delayfunc=time.sleep)
- timefunc:經(jīng)過時間調(diào)用的方法,默認為 time.monotonic(),返回單調(diào)時鐘的值,單位為小數(shù)秒
- delayfunc:延遲時間調(diào)用的方法,默認為 time.sleep(secs),線程暫停執(zhí)行secs秒
調(diào)度器對象方法和屬性有:
| scheduler.enterabs(time, priority, action, argument=(), kwargs={}) | 安排一個新事件 |
| scheduler.enter(delay, priority, action, argument=(), kwargs={}) | 安排延后 delay 時間單位的事件 |
| scheduler.cancel(event) | 從隊列中刪除事件 |
| scheduler.empty() | 判斷事件隊列是否為空 |
| scheduler.run(blocking=True) | 運行所有預(yù)定事件 |
| scheduler.queue | 按運行順序返回事件列表 |
詳細查看:sched — 事件調(diào)度器
使用sched會阻塞進程,同時進行的任務(wù)應(yīng)該使用threading.Timer
參考文獻
總結(jié)
以上是生活随笔為你收集整理的Python事件调度器定时任务sched的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: rtthread开关中断
- 下一篇: 一文看懂,python抓取m3u8里ts