可以使用Batch Job Dependency特性来控制AWS Batch中作业的执行顺序,从而实现并发执行作业的最大数量控制。该特性要求在提交作业时设置间接依赖关系。例如,可以将一个计算环境分为多个子环境,并使用作业依赖关系来控制在特定子环境中运行的作业数量。
示例代码:
{
"JobDefinition": "arn:aws:batch:us-west-2:111122223333:job-definition/myjobdef:1",
"JobName": "myjob",
"JobQueue": "arn:aws:batch:us-west-2:111122223333:job-queue/myqueue",
"ArrayProperties": {
"Size": 100,
"JobDependency": {
"Type": "SEQUENTIAL",
"RangeProperties": [
{
"Start": 0,
"End": 24
},
{
"Start": 25,
"End": 49
},
{
"Start": 50,
"End": 74
},
{
"Start": 75,
"End": 99
}
]
}
}
}
上述代码示例将一个大小为100的作业数组划分为四个部分,每个部分允许并发做多为25个作业。这个示例将数组分为四个范围并为每个范围创建一个作业依赖规则。其中每个范围内的作业依赖顺序是分别是顺序执行的,但不需要等待整个范围内的作业全部执行完毕。
使用此方法,可以控制看似超过AWS Batch定义的最大并发限制的作业数量,并将它们分配和管理在子环境中。