[英]Can you guarantee order with a large number of jobs in AWS Batch?
我的问题是在 AWS Batch 上完成数千个作业后运行一个作业。 我尝试在优先级较低的作业队列中运行作业,并在同一队列中运行作业,但在所有其他队列之后提交(文档说作业大致按照提交的顺序执行)。 但我的问题是,这些(或其他一些)中的任何一个是否保证它会在其他人之后运行?
我不会依赖使用上述方法的保证。 执行顺序明确不保证与提交顺序匹配。 优先级“应该”工作,但在大规模情况下,很可能在某些时候会延迟您的高优先级执行并导致调度程序决定它有资源可用于低优先级队列。
你可以依赖工作依赖。 它们允许您指定一个作业依赖于另一个N
个作业,因此必须等到它们全部完成才能开始运行。 这甚至可以链接 - A
取决于B
, B
取决于C
,保证订单C -> B -> A
。 不幸的是, N <= 20
。
依赖大量作业(超过 20 个)的最佳方法是依赖单个数组作业,其中包含所有这些作业。 在相关说明中,也可以将数组作业配置为使其所有作业串行依赖(作业按数组顺序执行)。 唯一需要注意的是,您必须将所有工作放入一个数组中。 如果您想要依赖的数千个工作还没有在一个数组中,有一些方法可以将它们处理成一个 - 例如,如果您正在处理 1000 个文件,您可以将这些文件放在一个列表中,并使用其作业索引将每个数组作业索引到列表中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.