前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【实测】python模拟jenkins的定时设置时间库: 【 python_jenkins_monitor 】

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

作者头像
我去热饭
发布2023-08-14 15:53:34
1740
发布2023-08-14 15:53:34
举报
文章被收录于专栏:测试开发干货测试开发干货

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

但是还是有不少小伙伴希望可以直接套用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

导入方法:

代码语言:javascript
复制
from python_jenkins_monitor.python_jenkins_monitor import get_next_time

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

代码语言:javascript
复制
print(get_next_time('5 15-18 * * 1-5'))

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

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

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-08-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试开发干货 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档