加入收藏 | 设为首页 | 会员中心 | 我要投稿 财气旺网 - 财气网 (https://www.caiqiwang.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

Python schedule任务调 度及其使用方式

发布时间:2022-12-07 11:18:28 所属栏目:语言 来源:
导读:  scheduler 类常用的构造方法如下:
  scheduler(timefunc=time.monotonic, delayfunc=time.sleep)

  可以向该构造方法中传入 2 个参数(当然也可以不提供,因为都有默认值),分别表示的含义如下:

  scheduler 类常用的构造方法如下:
  scheduler(timefunc=time.monotonic, delayfunc=time.sleep)
 
  可以向该构造方法中传入 2 个参数(当然也可以不提供,因为都有默认值),分别表示的含义如下:
  timefunc:指定生成时间戳的函数,默认使用 time.monotonic 来生成时间戳;
 
  delayfunc:在未到达指定时间前,通过该参数可以指定阻塞任务执行的函数,默认采用 time.sleep() 函数来阻塞程序。
 
 
  另外,scheduler 类中还提供有一些方法,表 1 罗列了常用的一些。
 
  表 1 scheduler 类常用方法 方法格式 功能
  scheduler.enter(delay, priority, action, argument=(), kwargs={})   在 time 规定的时间后,执行 action 参数指定的函数,其中 argument 和 kwargs 负责为 action 指定的函数传参,priority 参数执行要执行任务的等级,当同一时间点有多个任务需要执行时,等级越高( priority 值越小)的任务会优先执行。该函数会返回一个 event,可用来取消该任务。  
  scheduler.cancel(event)   取消 event 任务。注意,如果 event 参数执行的任务不存在,则会引发 ValueError 错误。  
  scheduler.run(blocking=True)   运行所有需要调度的任务。如果调用该方法的 blocking 参数为 True,该方法将会阻塞线程,直到所有被调度的任务都执行完成。  
 
  下面程序示范了 scheduler 类的用法。
  import threading
 
  from sched import scheduler
 
  
 
  def action(arg):
 
  print(arg)
 
  
 
  #定义线程要调用的方法,*add可接收多个以非关键字方式传入的参数
 
  def thread_action(*add):
 
  #创建任务调度对象
 
  sche = scheduler()
 
  #定义优先级
 
  i = 3
 
  for arc in add:
 
  # 指定1秒后执行action函数
 
  sche.enter(1, i, action,argument=(arc,))
 
  i = i - 1
 
  #执行所有调度的任务
 
  sche.run()
 
  
 
  #定义为线程方法传入的参数
 
  my_tuple = ("",\
 
  "",\
 
  "")
 
  #创建线程
 
  thread = threading.Thread(target = thread_action,args =my_tuple)
 

(编辑:财气旺网 - 财气网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!