jenkins logRotator删除是通过序列号而不是最旧的

问题描述

  • 我是Jenkins的新手,所以如果我的问题中有任何遗漏的数据,请告诉我,我会尽力添加

背景

我需要在特定作业上运行一些测试(每个测试具有不同的参数),例如20,并且我正在使用Jenkins作业(我们将此称为触发作业A)将它们全部发送到运行它们的另一项工作(工作B)。

我有5台可用的计算机,Jenkins会自动为测试分配一台计算机,当计算机空闲时,会将其分配给下一个测试(所有作业类型B)。

同时,作业A等待所有20个作业完成。每次测试结束时,作业A还会从该特定作业B收集日志文件

问题

在作业B上,我有一个builddiscarder.logrotator,它将仅保留最后5个测试。 但是,由于某种原因,詹金斯将按照自己的顺序而不是按照给出的列表的顺序来运行测试。

这意味着前5个测试可能具有序列号:3、6、12、13、19(顺便说一句,为什么?)

但是logrotator会按序列号保留最后5个,而不是按最旧的“ real”保留。这意味着如果测试编号6是序列号为#1的测试,则由于它是“ oldeset”,因此在完成后将被删除,而实际上,最早的将是第一个完成的测试(在我的示例中可能是#13 )。

摘要

我启动了20个测试的触发器作业正在尝试访问已删除的日志,即使该日志按顺序工作也是如此。是builddiscarder并没有真正删除“最旧的”。

该如何解决此问题?

非常感谢您!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)