【问题标题】:Retrieving the number of tasks in a particular state in the Azure Batch API在 Azure Batch API 中检索处于特定状态的任务数
【发布时间】:2017-07-18 11:35:21
【问题描述】:

Azure Batch API 提供了list 函数,该函数检索作业中的可枚举任务列表,例如,使用TaskListOptions 按状态过滤任务。

我只想查询 API 以获取特定状态下的任务数,而 API 没有为此提供函数。我可以通过下载枚举所有任务来做到这一点,例如:

n = sum(1 for t in bsc.task.list(job.id, bm.TaskListOptions(filter="state eq 'Completed'")))

这当然非常慢。 OData 规范确实提供了$count 查询选项,但我找不到将其添加到查询中的方法。有没有办法将 $count 与 Batch API 一起使用,或者是否有完全不同的替代方案,例如,通过绕过 Batch API 的原始 REST 查询?

【问题讨论】:

    标签: python azure azure-batch


    【解决方案1】:

    2017 年 7 月 31 日更新:

    您现在可以使用get_task_counts API 直接查询作业的任务计数。这将为指定的作业返回一个TaskCounts 对象。

    您使用的是 Azure Batch Python SDK,请使用 azure-batch 3.1.0 或更高版本。

    原答案:

    现在,按照您的方式进行列表查询是完成计数的唯一方法。您可以通过提供一个 select 子句来稍微优化您的查询,其中服务器只返回您关心的属性,这将减少传输的数据量。这是一个常见的问题,并且正在对该领域进行改进 - 此答案将在可用时更新。

    对于您的另一个问题,语言 SDK 构建在 REST API 之上,并公开了 REST 层的全部功能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-30
      • 1970-01-01
      • 2017-11-12
      • 2018-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多