You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Batch Python:如何仅更新作业的OnAllTasksComplete属性

如何优雅地仅更新Azure Batch作业的OnAllTasksComplete属性

要避免更新OnAllTasksComplete时重置作业的其他属性,核心思路是基于现有作业的完整属性构建更新参数,只修改目标字段,其余属性沿用原有值。

具体步骤

  1. 获取当前作业的完整配置
    先拉取目标作业的所有现有属性,确保后续更新时能保留这些配置:

    existing_job = batch_service_client.job.get(job_id)
    
  2. 构建仅含目标修改的更新参数
    实例化JobUpdateParameter时,除了设置on_all_tasks_complete,还要将现有作业的其他关键属性(如约束、池信息、优先级等)一并传入,避免被重置为默认值:

    from azure.batch import batchmodels
    
    update_param = batchmodels.JobUpdateParameter(
        on_all_tasks_complete=batchmodels.OnAllTasksComplete.terminate_job,
        constraints=existing_job.constraints,
        pool_info=existing_job.pool_info,
        priority=existing_job.priority,
        # 根据作业实际配置,添加其他需要保留的属性,比如job_manager_task、job_preparation_task等
    )
    
    # 执行更新操作
    updated_job = batch_service_client.job.update(job_id=job_id, job_update_parameter=update_param)
    

关键说明

Azure Batch的作业更新API不会自动保留未指定的属性,若仅传入on_all_tasks_complete,未提及的属性会被重置为默认值(比如约束会被清空)。因此必须显式传入需要保留的原有属性,才能实现仅更新目标字段的效果。

内容的提问来源于stack exchange,提问作者ZirconCode

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 18:33:12