伍佰目录 短网址
  当前位置:海洋目录网 » 站长资讯 » 互联网资讯 » 文章详细 订阅RssFeed

如何用 Python 实现优先级调度器?

来源:本站原创 浏览:146次 时间:2021-08-06

七星岩门票,亚洲百米记录,大石桥三高中

  

  作者:kingname

  本原:未闻Code

  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'),运行结果如下图所示:

  

  此中,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()

  那么先打印出来的是你好:产物司理,如下图所示:

  

  为什么这里优先级失效了?1的优先级大于2,应该先运行下面的才对啊。

  这是由于,只有当两个任务同时运行的时候,才会去搜检优先级。如果两个任务触发的时间一前一后,那么还轮不到对照优先级。

  由于耽误队列的耽误是相对于当前运行这一行代码的时间来较量的,后一行代码比前一行代码晚了几毫秒,所以现实上产物司理这一行会先到时间,所以就会先运行。

  为了使用绝对的正确时间,我们能够使用另外一个方法:

  import schedimport timeimport 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()

  运行结果如下图所示:

  

  sch.enterabs()的第一个参数是任务起头时间的时间戳,这是一个绝对时间,这个时间能够使用datetime模块来天生,或者其他你熟悉的方式。后面的参数和sch.enter()完全一样。

  如果你要运行的函数带有多个参数或者默认参数,那么能够使用下面的方式传入参数:

本文地址:http://www.wbwb.net/bianchengyuyan/207501.html 转载请注明出处!

  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net