我对serial: true
对工作的看法有疑问。这似乎有点多余,因为serial_groups
似乎已经控制了多个作业的串行执行。但同时在plan
内部有像do
这样的结构,它们在一系列中运行计划的步骤。
文档说明了这一点:
serial: boolean
可选的。默认为false。如果设置为true,则构建将逐行排队并执行,而不是并行执行。
在“概念”部分中,广场似乎将“构建”定义为
执行作业计划的实例称为构建
在这种情况下,如果你没有在do
内指定构建步骤,它们会同时运行吗?
答案 0 :(得分:4)
serial: true
表示特定作业一次只能运行一个构建,但是将多个作业放在一个serial_group
中意味着该组中的所有作业将相互运行序列。
例如,如果我将作业job1
定义为serial: true
,并快速执行job1
的四个版本,则第一个版本将运行,并且构建2,3和4将等待pending
州。当构建1完成时,构建2将启动,构建3,并且4将在pending
状态中等待,依此类推。
如果在job1
中定义job2
,job3
和serial_group
,并且我同时关闭所有这些,那么其中一个工作,让我们说job2
,将运行,其余的将在pending
状态等待。然后另一项工作,让我们说job1
将会运行,job3
将等待pending
状态,直到job2
完成,然后job3
将会运行。