如何通过AzureDevOps WebApi查询TaskAgent的当前状态?
如何通过Azure DevOps Web API查询代理的当前状态
可以通过Azure DevOps Web API查询Microsoft.TeamFoundation.DistributedTask.WebApi.TaskAgent的当前状态,具体方式如下:
查询单个代理状态:使用
TaskAgentHttpClientBase.GetAgentAsync方法,传入组织名称/ID、代理池ID、代理ID,返回的TaskAgent对象包含两类关键状态属性:State(TaskAgentState枚举):代表代理的在线状态,可选值包括Online、Offline、Unavailable等;UpdateState(AgentUpdateState枚举):对应你提到的更新操作相关状态,可选值包括Pending、InProgress、Completed等,与UpdateAgentUpdateStateAsync方法设置的状态对应。
批量查询代理状态:使用
TaskAgentHttpClientBase.GetAgentsAsync方法,传入组织名称/ID、代理池ID,可获取该池下所有代理的列表,遍历每个TaskAgent对象即可获取对应状态。
代码示例(C#)
// 建立连接 var connection = new VssConnection(new Uri("https://dev.azure.com/你的组织"), new VssBasicCredential(string.Empty, "你的个人访问令牌")); var taskAgentClient = connection.GetClient<TaskAgentHttpClient>(); // 查询单个代理 int poolId = 123; // 替换为你的代理池ID int agentId = 456; // 替换为你的代理ID TaskAgent agent = await taskAgentClient.GetAgentAsync("你的组织", poolId, agentId); // 获取状态 TaskAgentState onlineState = agent.State; AgentUpdateState updateStatus = agent.UpdateState;
内容的提问来源于stack exchange,提问作者Patrick Moser
相关产品推荐
相关产品推荐

