公司的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]如何自动停止超时任务?相关推荐

  1. 如何使用 Jenkins Pipeline 流水线优雅的部署 Kubernetes 应用

    公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! 背景 虽然云原生时代有了 JenkinsX[1].Drone[2].Tekton[3] 这样的后起之秀,但 Jen ...

  2. GitLab + Jenkins实现一键分布式项目自动化部署

    分布式项目的打包部署增加了运维人员的工作量,而且工作是机械重复,极无技术含量的,说白就是打更.我们要把复杂的事情简单化,简单的事情标准化,标准的事情流程化,所以打包部署成了我们流程化里头的流水线. 该 ...

  3. jenkins 拉取git源码超时

    由于项目使用自购服务器搭建的 gitea 管理源码,服务器带宽较小.试了几次后都没发现是构建任务的时间不足,原因就是10分钟也挺久的,谁会去等10分钟噻. 最后第二天再看之前构建的任务,发现报错如下 ...

  4. jenkins 插件目录_10 个 Jenkins 实战经验,助你轻松上手持续集成

    众所周知,持续构建与发布是我们日常工作中要面对的的一个重要环节,目前很多公司都采用 Jenkins 来搭建符合需求的 CI/CD 流程,作为一个持续集成的开源工具,它以安装启动方便,配置简单,上手容易 ...

  5. jenkins运行日志时间与linux,Jenkins 用户文档(运行多个步骤)

    运行多个步骤 管道由多个步骤组成,允许你构建.测试和部署应用程序,Jenkins管道允许你以简单的方式组成多个步骤,可以帮助你为任何类型的自动化过程建模. 将"步骤"想象成执行单个 ...

  6. Jenkins持续集成学习-Windows环境进行.Net开发4

    目录 Jenkins持续集成学习-Windows环境进行.Net开发4 目录 前言 目标 Github持续集成 提交代码到Github 从Github更新代码 git上显示构建状态 自动触发构建 Gi ...

  7. jenkins部署net core初探

    一步一步,小心翼翼吖.看了好几个博客,摸索了两天了,才搭建成功,不容易,先写篇文章记下来,hhhhhhhhhhhh 相关环境配置 服务器:centos7 源代码管理器:git 技术选型:net cor ...

  8. jenkins需安装插件总结

    Custom Job Icon plugin (自定义图标插件) Credentials Binding Plugin (凭证绑定插件) build-name-setter (构建人名字插件) Bui ...

  9. Jenkins Pipeline插件十大最佳实践!

    Jenkins Pipeline 插件对于 Jenkins 用户来说可以让用户能够改变游戏规则.基于 Groovy 中的领域特定语言(DSL),Pipeline 插件使 Pipelines 可以有脚本 ...

  10. git连接jenkins_基于 Jenkins 和 Kubernetes 的持续集成测试实践了解一下!

    作者 | 刘春明 责编 | Carol 出品 | CSDN 云计算(ID:CSDNcloud) 封图| CSDN下载于视觉中国 目前公司为了降低机器使用成本,对所有的AWS虚拟机进行了盘点,发现利用率 ...

最新文章

  1. python使用openCV图像加载(转化为灰度图像)、使用filter2D函数对图像进行锐化(Sharpen Images)
  2. 循环更新数据库java_java – 无限循环数据库检查
  3. php中访问控制_一个实例:基于RBAC理论的访问控制实践
  4. java基础之HashTable和HashMap的区别
  5. 相见恨晚!遗憾仅有不到1% 的人知道
  6. 登录界面拦截java_java拦截通过url访问页面,必须通过登录页面访问目标页面
  7. 自己配置外接屏幕和驱动,最终通过hdmi连接
  8. 简易而又灵活的Javascript拖拽框架(三)
  9. dnf超时空漩涡副本路线流程图_dnf怎么打超时空漩涡 dnf超时空漩涡打法攻略
  10. 滑动窗口算法思想,找出字符串中的所有字母异位词
  11. 07:计算多项式的值
  12. 利用递推公式的特征方程求解通项公式
  13. Zend Studio 12.5注册码破解
  14. 网络技术-ENSP 华为模拟器(二)静态路由配置-3路由3PC
  15. 因签署Android独家协议排除竞争对手 谷歌在印度被罚款1.62亿美元
  16. nRF SPI 与 TWI 操作相关 (BMI088 与 MLX90614 举例)
  17. python知乎爬虫收藏夹_Python爬取知乎问题收藏夹 爬虫入门
  18. 腾讯安全运营中心集成UEBA能力,助力企业保障内部网络安全
  19. 杨小麦OC之旅--RunLoopNSTimer
  20. 时间序列数据趋势分析 Cox-Stuart、Mann-Kendall、Dickey-Fuller

热门文章

  1. 经典点云配准算法:迭代最近点算法ICP(Iterative Closest Point)
  2. 交叉连接(笛卡尔积)
  3. 最新!2016中国城市GDP排名出炉
  4. 计算机没有有效的ip配置,win7电脑没有有效的ip配置怎么办
  5. 计算机所有以太网适配的ip,以太网没有有效的ip配置怎么办
  6. tensorflow object detection api关于csv转换tfrecord格式
  7. 10 Guidelines for Better Website Background Videos
  8. 太励志!北大物业小哥六战法考终上岸
  9. 亚控科技的KingSCADA多个漏洞
  10. SSLv3 协议漏洞‘POODLE’修复与相关概念