我有一个场景,我想以这样一种方式运行:外部Map应该并行运行,而其中一个外部Map的内部Map应该按顺序运行。我有类似于下面提到的东西,但在我看来,outer_map1和outer_map2将按顺序运行,而不是按并行代码摘录运行:
stage('test'){
parallel outer_map1
outer_map2.each{ key, value ->
parallel value()
}
}
这里,outer_map1包含作为字符串的key,value将是要执行的命令,并且该Map的所有项都应该并行运行,而outer_map2包含key作为字符串,value将是Map,而这个内部Map再次包含key作为字符串,value将是要执行的命令。map2将是应该并行运行的内部Map,而outer_map2的每个项应该按顺序运行。
因此,这里的主要挑战是确定outer_map1和outer_map2如何并行运行。
我可以为outer_map1和outer_map2设置2个不同的阶段,但如果我采用这种方法,则不知道如何并行运行这2个阶段。
1条答案
按热度按时间w46czmvw1#
您可以将
outer_map2
的执行部分作为一个项添加到outer_map1
中。这样,outer_map2
的整个执行将与outer_map1
的所有其他执行并行进行。类似于:
如果您使用的是声明性管道,并希望将其分为两个阶段以提高可读性,则可以混合使用声明性管道和脚本化管道:
这两个选项都应该产生您想要的行为。