Jenkins取消生成队列
我们有多个SCM作业。作业A触发作业B,作业C触发作业D。作业C运行时,如果作业A中有签入,则在作业C完成而不是触发作业D后,作业A被触发,作业D在队列中。一旦作业A完成,则在作业B处于队列中时触发作业D。这是虫子吗?将期望作业C触发作业D,而不管上游作业中的任何SCM更改。您如何解决这个问题?是的,假设您只有一个执行者,这是预期的。首先是一些术语:Jenkins取消生成队列,jenkins,jenkins-pipeline,Jenkins,Jenkins Pipeline,我们有多个SCM作业。作业A触发作业B,作业C触发作业D。作业C运行时,如果作业A中有签入,则在作业C完成而不是触发作业D后,作业A被触发,作业D在队列中。一旦作业A完成,则在作业B处于队列中时触发作业D。这是虫子吗?将期望作业C触发作业D,而不管上游作业中的任何SCM更改。您如何解决这个问题?是的,假设您只有一个执行者,这是预期的。首先是一些术语: 队列,这是生成在执行之前的位置,通常是因为所有执行者都很忙 触发,表示将作业的生成添加到队列中 Executor,获取队列中的第一个生成并生成它
- 队列,这是生成在执行之前的位置,通常是因为所有执行者都很忙
- 触发,表示将作业的生成添加到队列中
- Executor,获取队列中的第一个生成并生成它
因此,正如您所能看到的,执行者总是采用队列中最长的构建。有几种方法可以更改此优先级,例如使用,它允许您为某些作业设置更高的优先级,在您的情况下,您应该为作业B和D设置更高的优先级。是的,但我有四个执行器,在任何给定时间只有一个在运行。我也尝试过使用上下游作业阻塞,但仍然没有帮助。好吧,这很奇怪,因为我看到作业A和B完全独立于作业C和D,对吗?然后他们应该建立相互独立的,奇怪的。。。当c在构建时,A在队列中吗?如果是,您应该能够通过转到作业A的页面并检查构建历史来了解它为什么没有构建。抱歉,这四个作业都是链接的。当没有SCM更改时,订单将正常执行。我注意到的问题只有在上游或下游作业发生SCM变更时才会发生。SCM触发作业优先。好的,这更有意义。我唯一的猜测是,SCM触发的作业在另一个作业之前进入队列,因此将在另一个作业之前生成。是的,正因为如此,所有作业都无序并在队列中等待。回到我最初的问题,这是一个bug还是有其他方法可以避免?