成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一日一技:Python自帶的優(yōu)先級調度器

開發(fā) 后端
Python 自帶一個調度器模塊sched,它能為你實現(xiàn)優(yōu)先級隊列/延遲隊列和定時隊列。

[[395371]]

Python 自帶一個調度器模塊sched,它能為你實現(xiàn)優(yōu)先級隊列/延遲隊列和定時隊列。

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

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

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

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

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

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

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

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

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

  1. import sched 
  2. import time 
  3. import datetime 
  4.  
  5. def do_work(name): 
  6.     print(f'你好:{name}'
  7.  
  8. sch = sched.scheduler(time.timetime.sleep) 
  9. start_time = datetime.datetime.now() + datetime.timedelta(seconds=10) 
  10. start_time_ts = start_time.timestamp() 
  11. sch.enterabs(start_time_ts, 2, do_work, argument=('產品經理', )) 
  12. sch.enterabs(start_time_ts, 1, do_work, argument=('kingname', )) 
  13. sch.run() 

運行效果如下圖所示:

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

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

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

 

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

 

責任編輯:武曉燕 來源: 未聞Code
相關推薦

2021-04-12 21:19:01

PythonMakefile項目

2024-11-13 09:18:09

2021-04-05 14:47:55

Python多線程事件監(jiān)控

2021-04-27 22:15:02

Selenium瀏覽器爬蟲

2021-07-27 21:32:57

Python 延遲調用

2021-09-13 20:38:47

Python鏈式調用

2021-03-12 21:19:15

Python鏈式調用

2024-07-30 08:16:18

Python代碼工具

2024-07-30 08:11:16

2021-11-12 05:00:43

裝飾器代碼功能

2021-10-15 21:08:31

PandasExcel對象

2025-05-28 03:15:00

Scrapy數(shù)據(jù)sleep

2022-06-28 09:31:44

LinuxmacOS系統(tǒng)

2022-03-12 20:38:14

網頁Python測試

2024-02-20 22:13:48

Python項目Java

2020-05-19 13:55:38

Python加密密碼

2023-10-29 09:16:49

代碼安全命令

2023-10-28 12:14:35

爬蟲JavaScriptObject

2021-04-19 23:29:44

MakefilemacOSLinux

2024-11-11 00:38:13

Mypy靜態(tài)類型
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品一区久久久 | 欧美一区二区在线观看视频 | 91视频网址| av中文字幕在线 | 99re6在线视频精品免费 | 伊人狠狠干 | 成人二区三区 | 久久久久无码国产精品一区 | 精品99爱视频在线观看 | 亚洲精品久久久久久久不卡四虎 | 高清亚洲| 久久精品国产久精国产 | 欧美不卡在线 | 欧美黑人一区 | 国产免费a视频 | 成人伊人网 | 国产精品成人久久久久 | 欧美久久久久久久久中文字幕 | 久久av一区 | 欧美在线视频网站 | 亚洲性人人天天夜夜摸 | 少妇一级淫片免费播放 | 亚洲午夜视频在线观看 | 久久久美女 | 日本精品视频一区二区 | 国产成人精品a视频一区www | 国产综合欧美 | 午夜亚洲 | 欧美在线一区二区三区 | 国产欧美精品区一区二区三区 | 欧美黄色片| 男人天堂国产 | 毛片区 | 欧美综合久久 | 国产激情片在线观看 | 欧美成人免费在线 | 热久久久久 | 拍拍无遮挡人做人爱视频免费观看 | 懂色av色香蕉一区二区蜜桃 | 国产一区二区小视频 | 99精品网|