TFS 是否支持内置自定义网络套接字?

Does TFS support build in custom web sockets?

我想在 TFS 中创建自定义构建步骤(插件),它将在我的外部服务器中调用 API。我想将结果从我的服务器发送到 TFS 并通知作业已完成(可能需要大约 1-2 小时)。然后我才想继续下一个构建步骤。

为此,我需要向我的服务器发送一个 "Callback URL" 以将输出发送到(完成后)。我的问题是我可以在 TFS(从我的 tfs 插件)中打开这么小的网络套接字吗? TFS 是否有一个框架?或者我应该在我的插件中附加一个自定义的 web 服务进程,它将 运行 这个 web 套接字。

这个插件将作为我构建系统的一部分,只有在我从我的服务器得到答案后才会完成,我需要在摘要构建页面的另一个插件中显示这些数据。

TFS 是否支持\具有其中一些功能,还是我应该自己实现整个功能?

不,不支持。您只需调用 TFS API(例如 REST API)来对 TFS 执行某些操作(例如 queue/stop 构建)

你可以运行一个恒速循环查看外部服务器的结果,如果结果完成,继续运行。

例如(带有 PowerShell 构建步骤的 powershell):

$inprocess=true
$loopDelayseconds = 300
while($inprocess)
{
   # send request to server and check the result
   # if result is finished, set inprocess to false, else call Start-Sleep.

    Start-Sleep -s $loopDelayseconds
}

节点:如果任务花费的时间太长,您需要更改构建作业超时值(构建定义> 常规> 构建作业超时分钟)。