咨询:AWS Glue任务运行中时,新文件触发的任务执行逻辑
S3上传触发Glue任务的并发执行行为
当你通过Lambda触发S3上传启动Glue任务时,新文件触发的行为取决于Glue作业的最大并发数设置以及Lambda的错误处理逻辑:
默认场景(Glue作业Max concurrency=1):
Glue作业默认限制同一时间只能运行1个实例。此时如果第一个任务还在运行,新的Lambda触发调用start_job_runAPI时,Glue会返回ConcurrentRunsExceededException异常。如果你的Lambda没有处理这个异常,Lambda执行会直接报错;如果Lambda里捕获了该异常,你可以自行决定是忽略请求,还是将任务放入队列(比如SQS)等待前序任务完成后再重试。设置Glue作业Max concurrency>1:
若你在Glue作业配置里将最大并发数调大(比如设置为2或更高),新的触发请求会直接启动一个新的Glue作业实例,和正在运行的实例并行执行,不会报错也不会等待。额外说明:
如果你希望实现“等待前序任务完成后再执行新任务”的效果,除了捕获异常放入队列重试外,也可以在Lambda里先调用get_job_runsAPI检查当前是否有运行中的作业实例,只有当没有运行实例时再启动新任务。
内容的提问来源于stack exchange,提问作者user20277149
相关产品推荐
相关产品推荐

