2014-02-06 2 views
0

내 웹 역할의 onStart 내에서 Azure Diagnostics를 초기화하고 5 분마다 로그를 전송하도록 예약했습니다. 그러나 자동 크기 조정이 내 역할을 종료하면 마지막 전송 이후 로그를 잃어 버리게됩니다. 이러한 일이 발생하지 않도록하기 위해 onStop에서 무엇을 할 수 있습니까? 완료 될 때까지 로그 전송을 강제하고 onStop이 끝나지 않도록하는 방법이 있습니까? 감사!하늘의 진단과 클래스 onStop (규모 축소) - 로그 손실을 방지하는 방법?

답변

0

단지 onStop 메소드로 로그 전송을하십시오. 또는 스레드에서 완료되면 onStop 메서드에서 플래그와 루프를 사용하여 플래그가 설정 될 때까지 절전 모드로 전환하십시오.

SaveLogAsync(); 
while(!saved) 
{ 
    Thread.Sleep(100); 
} 

강제로 종료되기 전에 onStop 메소드가 실행되는 데 최대 시간이 여전히 있습니다. 나는 5 분이라고 생각한다.

+0

예, 감사합니다.하지만 로그를 onStop에서 강제로 전송하려면 어떻게해야합니까? 나는 문서를 찾았으므로 지금까지 아무 것도 발견하지 못했습니다. :) – enlightenedOne

0

역할이 종료 될 때 진단 데이터를 전송하려면 On-Demand Transfer이라는 작업을 수행해야합니다. 그러면 버퍼에 저장된 데이터가 진단 저장소 계정으로 전송되기 시작합니다. 이 링크는 On-Demand Transfer 수행에 도움이 될 수 있습니다. http://msdn.microsoft.com/en-us/library/windowsazure/gg433075.aspx.

David가 맞습니다. 이 작업을 수행하는 데 약 5 분이 소요됩니다. 자세한 내용은이 링크를 참조하십시오 : http://msdn.microsoft.com/en-us/library/microsoft.windowsazure.serviceruntime.roleentrypoint.onstop.aspx. OnStop 이벤트를 정상적으로 처리하려면이 블로그 게시물이 유용 할 수 있습니다. http://blogs.msdn.com/b/windowsazure/archive/2013/01/14/the-right-way-to-handle-azure-onstop-events.aspx.