实测】python模拟jenkins的定时设置时间库: 【 python_jenkins_monitor 】

·  阅读 27

最近正在做一款测试平台,然后涉及到了定时任务,虽然我做了很多定时设计,比如间隔几分钟运行,每天的几点几分运行等等。

    但是还是有不少小伙伴希望可以直接套用jenkins的时间定时设计,那个设计特别直观,也特别灵活。

    甚至可以设置到 :工作日的每天下午3-6点的每小时的第5分钟执行这种...

    不得不说,你们的需求是真变态啊。

    jenkins的时间设置其实很通俗易懂,这里如果小伙伴不能记住的话,恐怕要被人笑的:

    总结来说,简单的用法就是  五个字符串 (用空格隔开)。

minute:表示分钟,可以是从0到59之间的任何整数。

hour:表示小时,可以是从0到23之间的任何整数。

day:表示日期,可以是从1到31之间的任何整数。

month:表示月份,可以是从1到12之间的任何整数。

week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。

    上述的每个字符串都可以直接使用下列的具体表达式:

星号(*):代表所有可能的值\

逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”

中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”

正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。

    这样看来,文章开头的那个需求(工作日的每天下午3-6点的每小时的第5分钟执行)就可以写成:

    5 15-18 * * 1-5

这样我觉得都会写,但是如果我们要用python实现,解析出来,这个设置的下一次执行的具体时间,恐怕就很难办到了。

于是乎,给大家推荐一个第三方库:

python_jenkins_monitor

下载方式:pip install python_jenkins_monitor

导入方法:

from python_jenkins_monitor.python_jenkins_monitor import get_next_time
复制代码

调用时需要传入设置字符串

print(get_next_time('5 15-18 * * 1-5'))
复制代码

结果展示:(注意,回来的是一个时间戳)

图片

这个时间戳也就是下一次要执行的具体时间了,小伙伴可以手动给这个时间戳还原成可查看的格式:time.strftime('格式',time.localtime(时间戳))

图片

结果如下:当前时间 8-24 22:21  所以下一次满足的最早时间是25号的15:05

图片

怎么样,是不是非常简单呢?

图片

分类:
后端
收藏成功!
已添加到「」, 点击更改