广告

时间:2017-09-22 18:22:11

标签: concourse

我对serial: true对工作的看法有疑问。这似乎有点多余,因为serial_groups似乎已经控制了多个作业的串行执行。但同时在plan内部有像do这样的结构,它们在一系列中运行计划的步骤。

文档说明了这一点:

  

serial: boolean   可选的。默认为false。如果设置为true,则构建将逐行排队并执行,而不是并行执行。

在“概念”部分中,广场似乎将“构建”定义为

  

执行作业计划的实例称为构建

在这种情况下,如果你没有在do内指定构建步骤,它们会同时运行吗?

1 个答案:

答案 0 :(得分:4)

serial: true表示特定作业一次只能运行一个构建,但是将多个作业放在一个serial_group中意味着该组中的所有作业将相互运行序列。

例如,如果我将作业job1定义为serial: true,并快速执行job1的四个版本,则第一个版本将运行,并且构建2,3和4将等待pending州。当构建1完成时,构建2将启动,构建3,并且4将在pending状态中等待,依此类推。

如果在job1中定义job2job3serial_group,并且我同时关闭所有这些,那么其中一个工作,让我们说job2,将运行,其余的将在pending状态等待。然后另一项工作,让我们说job1将会运行,job3将等待pending状态,直到job2完成,然后job3将会运行。