使用 BatchJobService
时,请遵循以下准则:
- 为了提高吞吐量,最好执行较少的较大作业,而不是许多较小的作业。
- 建议每个
AddBatchJobOperationsRequest
添加的操作不超过 1,000 项,并使用sequence_token
将其余操作上传到同一作业。根据操作的内容,单个AddBatchJobOperationsRequest
中的操作过多可能会导致REQUEST_TOO_LARGE
错误。您可以通过减少操作数量并重试AddBatchJobOperationsRequest
来处理此错误。 - 在为同一帐号提交多个并发作业时,请尽量降低针对相同对象同时执行多项作业的可能性,同时保持大型作业的规模。如果对同一组对象执行 mutate 操作的未完成作业(状态为
RUNNING
)过多,可能会出现死锁的情况,导致系统速度严重降低,甚至造成作业失败。 - 请勿在同一作业中提交对同一对象执行 mutate 操作的多个操作,因为结果可能无法预测。
- 为了提高吞吐量,请按操作类型对上传操作进行排序。例如,如果您的作业包含添加广告系列、广告组和广告组条件的操作,请对上传文件中的操作进行排序,首先是所有广告系列操作,接着是所有广告组操作,最后是所有广告组条件操作。
- 请勿过于频繁地轮询作业状态,否则可能会发生速率限制错误。
- 每页检索的结果不得超过 1,000 条。由于负载或其他因素,服务器返回的内容数量可能会少于该值。
- 结果顺序将与批处理的上传顺序相同。
- 您可以设置一个上限,指定批量作业在被取消之前可以运行的时长。创建新的批量作业时,请将
metadata.execution_limit_seconds
字段设置为您的首选时间限制(以秒为单位)。如果未设置metadata.execution_limit_seconds
,则不存在默认的时间限制。
限制
- 每个
BatchJob
最多支持一百万次操作。 - 每个帐号可同时拥有最多 100 个活跃或待处理作业。
- 系统会自动移除存在时长超过 7 天的待处理作业。