python scheduler 定时执行,pythonschedule定时任务原理

  python scheduler 定时执行,pythonschedule定时任务原理

  本文主要介绍如何在Python中使用schedule模块的定时任务。文章是基于上一篇的后续,有需要的朋友可以参考一下。

  00-1010 1.设置时间间隔随机数2。将计划任务设置为指定时间3。以秒为单位计算当前执行和下一次执行之间的时间差。上一篇文章:Python中关于如何使用调度任务的调度模块。

  

目录

 

  在某些场景中,为了模拟更自然的场景,需要采用随机的时间间隔,这就派上了用场。

  如下,设置随机间隔取2秒到10秒的随机数。

  导入计划

  导入时间

  def do_func(姓名,年龄):

  print(time . strftime( % y-% m-% d % h :% m :% s ,time . local time(time . time())) in do func 3360 name: name Age: str(Age))

  定义主():

  #定义计划任务时直接标记。

  时间表。每隔(2)。到(10)。seconds.do (do _ func,张三丰,100)。标签( demo1 , demo2 )

  而True:

  schedule.run_pending()

  if __name__==__main__:

  主()

  执行结果如下。可以看出确实是在随机的时间间隔。

  022-05-25 01:02336045 IN DOFUNC :姓名:张三丰年龄:100

  022-05-25 01:02:50 IN DOFUNC :姓名:张三丰年龄:100

  022-05-25 01:02:53 IN DOFUNC :姓名:张三丰年龄:100

  022-05-25 01:02:59 IN DOFUNC :姓名:张三丰年龄:100

  022-05-25 01:0:01 IN DOFUNC :姓名:张三丰年龄:100

  022-05-25 01:0:05 IN DOFUNC :姓名:张三丰年龄:100

  022-05-25 01:0:08 IN DOFUNC :姓名:张三丰年龄:100

  022-05-25 01:0:13 IN DOFUNC :姓名:张三丰年龄:100

  022-05-25 01:0:17 IN DOFUNC :姓名:张三丰年龄:100

  022-05-25 01:0:22 IN DOFUNC :姓名:张三丰年龄:100

  

1 设置时间间隔随机数

 

  以下都是赋给固定时间的,这里因为是固定时间,所以执行的结果就不演示了。

  导入计划

  从日期时间导入日期时间,时间增量,时间

  定义作业():

  打印(在作业中.)

  #每小时执行一次,直到今天的18336030。

  每隔(1)小时安排一次,直到( 18:30 )。做(工作)

  #每小时直到2030-01-01 18336033。

  计划每(1)小时,直到( 2030-01-01 18:33 )。做(工作)

  #在接下来的8小时内每小时执行一次

  schedule . every(1). hours . until(time delta(hours=8))。做(工作)

  #每个小时直到今天的11:3:42。

  schedule .每(1)小时.直到(time(11,33,42))。做(工作)

  #每小时直到2030-01-01 18336033:20。

  schedule . every(1). hours . until(datetime(2030,1,1,18,33,20))。做(工作)

  

2 设置定时任务执行到指定时间

 

  如下,设置为每两个小时执行一次,到下一次执行的时间可以计算为7200秒,如下所示。

  结果如下:

  导入计划

  导入时间

  def do_func(姓名,年龄):

  print(time.strftime

  (%Y-%m-%d %H:%M:%S,time.localtime(time.time()))+" in do func : 姓名:"+name+" 年龄:"+str(age))

  def main():

  # 定义定时任务时直接打标签

  schedule.every(2).hours.do(do_func,"张三丰",100)

  t=schedule.idle_seconds()

  print(t)

  if __name__=="__main__":

  main()

  

7200.0

 

  

 

  立刻执行所有的任务,不管他们是如何定时的

  (1)首先看一下,不使用立刻执行所有的任务时:

  代码如下:

  

import schedule

 

  执行结果如下,即启动任务后,过一个时间间隔才执行

  

2022-05-25 01:43:04

 

  2022-05-25 01:43:07 in do func : 姓名:张三丰 年龄:100

  2022-05-25 01:43:10 in do func : 姓名:张三丰 年龄:100

  2022-05-25 01:43:13 in do func : 姓名:张三丰 年龄:100

  2022-05-25 01:43:16 in do func : 姓名:张三丰 年龄:100

  

 

  (2)设置立刻执行

  代码如下,设置立刻执行

  

import schedule

 

  可以看出,此时任务立刻执行,不会等3秒再执行,立刻执行之后再开始按照定时任务设置的规则去执行

  

2022-05-25 01:46:17

 

  2022-05-25 01:46:17 in do func : 姓名:张三丰 年龄:100

  2022-05-25 01:46:20 in do func : 姓名:张三丰 年龄:100

  2022-05-25 01:46:23 in do func : 姓名:张三丰 年龄:100

  2022-05-25 01:46:26 in do func : 姓名:张三丰 年龄:100

  

 

  (3)立刻执行可以设置延时,这里的延时是指延长这些时间之后,定时任务才生效

  代码如下:

  

import schedule

 

  执行结果如下,可以看出,按照这种方式设置,也是立刻执行,只不过立刻执行之后,要过10秒之后定时任务才失效,这里需要特别注意,这里的延时不是说延长这么多时间才执行

  

2022-05-25 01:48:20

 

  2022-05-25 01:48:20 in do func : 姓名:张三丰 年龄:100

  2022-05-25 01:48:30 in do func : 姓名:张三丰 年龄:100

  2022-05-25 01:48:33 in do func : 姓名:张三丰 年龄:100

  2022-05-25 01:48:36 in do func : 姓名:张三丰 年龄:100

  

 

  到此这篇关于Python中schedule模块定时任务的使用方法(2)的文章就介绍到这了,更多相关Python schedule模块 内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: