2017-01-25 5 views
1

외부 서버에서 API를 호출하는 TFS에서 맞춤 빌드 단계 (플러그인)를 만들고 싶습니다. 내 서버에서 TFS로 결과를 보내고 작업이 완료되었음을 알리고 싶습니다 (약 1-2 시간이 소요될 수 있습니다). 그때 만 다음 빌드 단계로 진행하고 싶습니다.TFS는 사용자 정의 웹 소켓을 지원합니까?

이렇게하려면 출력을 보내려면 내 서버에 "콜백 URL"을 보내야합니다 (완료되면). 내 질문은 TFS (내 tfs 플러그인에서)와 같은 작은 웹 소켓을 열 수 있습니까? TFS에는 그 프레임 워크가 있습니까? 아니면이 웹 소켓을 실행할 플러그인에 커스텀 웹 서비스 프로세스를 첨부해야합니까?

이 플러그인은 내 빌드 시스템의 일부분이며 내 서버에서 응답을받은 후에 만 ​​완료되며 요약 빌드 페이지의 다른 플러그인에이 데이터를 표시해야합니다.

TFS는 이러한 기능 중 일부를 지원합니까? 아니면 모든 것을 직접 구현해야합니까?

답변

1

아니요, 지원되지 않습니다. TFS (예 : 대기열/정지 빌드)로 무언가를 수행하기 위해 TFS API (예 : REST API)를 호출 할 수 있습니다.

결과가 완료되면 일정 속도로 루프를 실행하여 외부 서버의 결과를 확인할 수 있습니다. 계속 실행하십시오.

예를 들어 (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 
} 

노드 : 당신은 (> 정의> 일반 빌드 분의 작업 시간 제한을 빌드) 작업이 너무 시간이 오래 걸리는 경우 빌드 작업 시간 초과 값을 변경해야 .

+0

고마워. 나는 "Busy Wait"메커니즘보다 나은 해결책이 있다고 생각했다. –

+0

@AviramFireberger, 나는 그렇게 생각하지 않습니다. 왜냐하면 여러분은 빌드를 일시 중지하고 다시 시작할 수 없기 때문입니다. –

+0

예, 저는 웹 소켓이 응답을 받았을 때 트리거 될 "세마포어 대기"또는 "수동 이벤트 재설정"과 같은 것을 가질 수 있다고 생각했습니다. 나는 MS가이 시나리오에 대해 생각하지 않았다고 생각한다 : \ –