[Jenkins]如何自动停止超时任务?
公司的Jenkins服务器运行一段时间了,每天编译github cocos2d-x仓库的所有pull request,还算稳定。但有个问题比较郁闷,由于实际执行编译的slave就放在办公室里,网络不太稳定,特别是访问github时,有时会导致整个编译任务挂起。由于我们在每个slave上只放了一个执行单元(Excutor),只要一个编译任务挂起,就会导致整个jenkins挂起,所有后续的编译任务都在排队。这个时候只能手动杀掉挂起的任务,以便其他排队的任务可以继续执行。这个问题很蛋疼,因为我们不可能派个人一直盯着jenkins主站,等发现有任务挂起时,已经有10几个pull request在排队了。
被这个问题折磨了几次之后,我下定决心要把它解决掉,分析了一下,其实可以用jenkins自己来解决:构建一个监控任务(jenkins-job-watchdog),每几分钟跑一次,看看其他任务有没有超时,如果超时,就把它关掉,呵呵,思路并不复杂。熟悉jenkins的童鞋可能会注意到:如果jenkins已经被挂起,就没有办法执行watchdog任务,怎么可能杀掉挂起的任务呢?呵呵,诀窍在于部署:在阿里云上部署一台jenkins master,在公司本地网络部署多台jenkins slave,master上不执行实际的编译任务,只执行触发器任务:响应任务请求,触发实际编译任务(在slave上执行),然后马上结束。这样,就保证了master不会被挂起,只要在master上执行watch-dog任务就可以了。那么:如何获取当前运行的任务,要怎么结束任务呢?必须介绍一下强大的jenkins python api, github地址:
https://github.com/salimfadhley/jenkinsapi
用法很简单:
J = Jenkins('http://localhost:8080',username,password)
for key,job in J.iteritems():
last_build = job.get_last_buildnumber()//获得最后一个构建的编号
running = build.is_running()//任务是否在运行
start_time = last_build.get_timestamp()//获得构建的开始时间
last_build.stop()//停止构建
将watchdog部署上去以后,还可以分别指定每个任务的超时时间,一旦超时就会被自动杀掉,再也不用半夜起床检查jenkins了~~
[Jenkins]如何自动停止超时任务?相关推荐
- 如何使用 Jenkins Pipeline 流水线优雅的部署 Kubernetes 应用
公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! 背景 虽然云原生时代有了 JenkinsX[1].Drone[2].Tekton[3] 这样的后起之秀,但 Jen ...
- GitLab + Jenkins实现一键分布式项目自动化部署
分布式项目的打包部署增加了运维人员的工作量,而且工作是机械重复,极无技术含量的,说白就是打更.我们要把复杂的事情简单化,简单的事情标准化,标准的事情流程化,所以打包部署成了我们流程化里头的流水线. 该 ...
- jenkins 拉取git源码超时
由于项目使用自购服务器搭建的 gitea 管理源码,服务器带宽较小.试了几次后都没发现是构建任务的时间不足,原因就是10分钟也挺久的,谁会去等10分钟噻. 最后第二天再看之前构建的任务,发现报错如下 ...
- jenkins 插件目录_10 个 Jenkins 实战经验,助你轻松上手持续集成
众所周知,持续构建与发布是我们日常工作中要面对的的一个重要环节,目前很多公司都采用 Jenkins 来搭建符合需求的 CI/CD 流程,作为一个持续集成的开源工具,它以安装启动方便,配置简单,上手容易 ...
- jenkins运行日志时间与linux,Jenkins 用户文档(运行多个步骤)
运行多个步骤 管道由多个步骤组成,允许你构建.测试和部署应用程序,Jenkins管道允许你以简单的方式组成多个步骤,可以帮助你为任何类型的自动化过程建模. 将"步骤"想象成执行单个 ...
- Jenkins持续集成学习-Windows环境进行.Net开发4
目录 Jenkins持续集成学习-Windows环境进行.Net开发4 目录 前言 目标 Github持续集成 提交代码到Github 从Github更新代码 git上显示构建状态 自动触发构建 Gi ...
- jenkins部署net core初探
一步一步,小心翼翼吖.看了好几个博客,摸索了两天了,才搭建成功,不容易,先写篇文章记下来,hhhhhhhhhhhh 相关环境配置 服务器:centos7 源代码管理器:git 技术选型:net cor ...
- jenkins需安装插件总结
Custom Job Icon plugin (自定义图标插件) Credentials Binding Plugin (凭证绑定插件) build-name-setter (构建人名字插件) Bui ...
- Jenkins Pipeline插件十大最佳实践!
Jenkins Pipeline 插件对于 Jenkins 用户来说可以让用户能够改变游戏规则.基于 Groovy 中的领域特定语言(DSL),Pipeline 插件使 Pipelines 可以有脚本 ...
- git连接jenkins_基于 Jenkins 和 Kubernetes 的持续集成测试实践了解一下!
作者 | 刘春明 责编 | Carol 出品 | CSDN 云计算(ID:CSDNcloud) 封图| CSDN下载于视觉中国 目前公司为了降低机器使用成本,对所有的AWS虚拟机进行了盘点,发现利用率 ...
最新文章
- python使用openCV图像加载(转化为灰度图像)、使用filter2D函数对图像进行锐化(Sharpen Images)
- 循环更新数据库java_java – 无限循环数据库检查
- php中访问控制_一个实例:基于RBAC理论的访问控制实践
- java基础之HashTable和HashMap的区别
- 相见恨晚!遗憾仅有不到1% 的人知道
- 登录界面拦截java_java拦截通过url访问页面,必须通过登录页面访问目标页面
- 自己配置外接屏幕和驱动,最终通过hdmi连接
- 简易而又灵活的Javascript拖拽框架(三)
- dnf超时空漩涡副本路线流程图_dnf怎么打超时空漩涡 dnf超时空漩涡打法攻略
- 滑动窗口算法思想,找出字符串中的所有字母异位词
- 07:计算多项式的值
- 利用递推公式的特征方程求解通项公式
- Zend Studio 12.5注册码破解
- 网络技术-ENSP 华为模拟器(二)静态路由配置-3路由3PC
- 因签署Android独家协议排除竞争对手 谷歌在印度被罚款1.62亿美元
- nRF SPI 与 TWI 操作相关 (BMI088 与 MLX90614 举例)
- python知乎爬虫收藏夹_Python爬取知乎问题收藏夹 爬虫入门
- 腾讯安全运营中心集成UEBA能力,助力企业保障内部网络安全
- 杨小麦OC之旅--RunLoopNSTimer
- 时间序列数据趋势分析 Cox-Stuart、Mann-Kendall、Dickey-Fuller
热门文章
- 经典点云配准算法:迭代最近点算法ICP(Iterative Closest Point)
- 交叉连接(笛卡尔积)
- 最新!2016中国城市GDP排名出炉
- 计算机没有有效的ip配置,win7电脑没有有效的ip配置怎么办
- 计算机所有以太网适配的ip,以太网没有有效的ip配置怎么办
- tensorflow object detection api关于csv转换tfrecord格式
- 10 Guidelines for Better Website Background Videos
- 太励志!北大物业小哥六战法考终上岸
- 亚控科技的KingSCADA多个漏洞
- SSLv3 协议漏洞‘POODLE’修复与相关概念