使用REST API Microsoft HPC列出所有任务

时间:2016-02-04 19:54:34

标签: rest scheduled-tasks hpc

嗨,我有一个问题,我没有找到可以解决的网络帮助。问题是我想使用Rest API列出给定作业中的所有任务(正在运行)。问题是只提取了10个第一个任务。有50个任务。

我尝试使用字段RowsPerRead并将其设置为100,例如如下所述,没有成功。 https://msdn.microsoft.com/en-us/library/windows/desktop/hh529658(v=vs.85).aspx

任何帮助都将受到高度赞赏

1 个答案:

答案 0 :(得分:1)

要获得作业的所有任务,您必须使用官方文档中所述的请求返回的x-ms-continuation-queryId值:

  

https://msdn.microsoft.com/en-us/library/windows/desktop/hh529658(v=vs.85).aspx

     

QueryId

     

在Get Task List操作的连续序列中,从前一个Get Task List操作中的响应中的x-ms-continuation-QueryId头指定内部数据。有关详细信息,请参阅本主题后面的“响应标头”部分。

为了说明一下,让我们说你要求获得所有现有的工作。您的请求的答案将为x-ms-continuation-queryIdqueryId1。您必须在下一个请求中使用此值才能获得以下RowsPerRead个作业。第二个请求的答案将包含x-ms-continuation-queryIdqueryId2,依此类推,直到返回的值与前一个值相同。此时,您将知道您已找回所有工作。

https://127.0.0.1:443/WindowsHPC/{0}/Jobs?api-version=2012-11-01.4.0 https://127.0.0.1:443/WindowsHPC/{0}/Jobs?api-version=2012-11-01.4.0&QueryId={queryId1} https://127.0.0.1:443/WindowsHPC/{0}/Jobs?api-version=2012-11-01.4.0&QueryId={queryId2}

关于字段RowsPerRead,它仅在HPC Pack 2012 Release 3开始生效。在早期版本中,RowsPerRead固定为10。