中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python優先級調度器怎么使用

發布時間:2022-05-25 09:55:09 來源:億速云 閱讀:201 作者:iii 欄目:大數據

本篇內容主要講解“Python優先級調度器怎么使用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Python優先級調度器怎么使用”吧!

Python 自帶一個調度器模塊sched,它能為你實現優先級隊列/延遲隊列和定時隊列。

這個模塊的使用非常簡單,首先以延遲隊列為例:

import sched  def do_work(name):     print(f'你好:{name}')  sch = sched.scheduler() sch.enter(5, 1, do_work, argument=('kingname', )) sch.run()

代碼運行以后,會卡在sch.run()這里,5秒鐘以后執行do_work('kingname'),運行效果如下圖所示:

Python優先級調度器怎么使用

其中,sch.enter()的第一個參數為延遲的時間,單位為秒,第二個參數為優先級,數字越小優先級越高。當兩個任務同時要執行時,優先級高的先執行。但需要注意的是,如果你這樣寫:

import sched  def do_work(name):     print(f'你好:{name}')  sch = sched.scheduler() sch.enter(5, 2, do_work, argument=('產品經理', )) sch.enter(5, 1, do_work, argument=('kingname', )) sch.run()

那么先打印出來的是你好:產品經理,如下圖所示:

Python優先級調度器怎么使用

為什么這里優先級失效了?1的優先級大于2,應該先運行下面的才對啊。

這是由于,只有當兩個任務同時運行的時候,才會去檢查優先級。如果兩個任務觸發的時間一前一后,那么還輪不到比較優先級。由于延遲隊列的延遲是相對于當前運行這一行代碼的時間來計算的,后一行代碼比前一行代碼晚了幾毫秒,所以實際上產品經理這一行會先到時間,所以就會先運行。

為了使用絕對的精確時間,我們可以使用另外一個方法:

import sched import time import datetime  def do_work(name):     print(f'你好:{name}')  sch = sched.scheduler(time.time, time.sleep) start_time = datetime.datetime.now() + datetime.timedelta(seconds=10) start_time_ts = start_time.timestamp() sch.enterabs(start_time_ts, 2, do_work, argument=('產品經理', )) sch.enterabs(start_time_ts, 1, do_work, argument=('kingname', )) sch.run()

運行效果如下圖所示:

Python優先級調度器怎么使用

sch.enterabc()的第一個參數是任務開始時間的時間戳,這是一個絕對時間,這個時間可以使用datetime模塊來生成,或者其他你熟悉的方式。后面的參數和sch.enter()完全一樣。

如果你要運行的函數帶有多個參數或者默認參數,那么可以使用下面的方式傳入參數:

import sched import time import datetime  def do_work(name, place, work='寫代碼'):     print(f'你好:{name},你在:{place}{work}')  sch = sched.scheduler(time.time, time.sleep) start_time = datetime.datetime.now() + datetime.timedelta(seconds=10) start_time_ts = start_time.timestamp() sch.enter(5, 2, do_work, argument=('產品經理', '杭州'), kwargs={'work': '寫需求文檔'}) sch.enterabs(start_time_ts, 1, do_work, argument=('kingname', '產品經理旁邊'), kwargs={'work': '看著她'}) sch.run()

argument參數對應的元組存放普通參數,kwargs對應的字典存放帶參數名的參數。

到此,相信大家對“Python優先級調度器怎么使用”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

衡山县| 嵩明县| 通渭县| 玉田县| 冷水江市| 凤阳县| 老河口市| 文山县| 鹿邑县| 砀山县| 寻甸| 揭西县| 合江县| 五河县| 临汾市| 桑日县| 海盐县| 高碑店市| 金川县| 浦东新区| 广元市| 宁夏| 察哈| 阜南县| 松滋市| 儋州市| 阿坝县| 安多县| 黄龙县| 本溪市| 崇礼县| 双江| 波密县| 黄梅县| 卫辉市| 犍为县| 洞口县| 汪清县| 兴安盟| 宣威市| 盐城市|