우리는 WCF 서비스를 사용하고 Windows 서비스에서 호스팅하고 있습니다. 이 개념은 here으로 설명됩니다.WCF Windows 서비스에서 장기 실행 스레드에 대한 우려
우리는 WCF 서비스 다음과 같은 형태 호출이이 WCF 호출 내에서
[System.ServiceModel.OperationContractAttribute(...)]
[System.ServiceModel.FaultContractAttribute(...)]
void TriggerLongRunningOperation(int id);
을, 우리가 분사 일부 파이어 앤 포겟 일부 백그라운드 작업을 수행하기 위해 새로운 스레드를. 대부분의 경우 하나만있을 수 있지만 여러 개가있을 수 있습니다. WCF 요청은 기본적으로 즉시 끝나고 fire-and-forget 스레드는 작업을 수행합니다.
Task task = Task.Run(() =>
{
// some stuff.
});
분리 된 작업은 2 분에서 1 시간까지 지속될 수 있습니다.
IIS를 통해 호스팅되지 않기 때문에 WCF 프로세스에서 장시간 실행되는 스레드가 걱정됩니다. 응용 프로그램 풀 재활용에 대해 걱정할 필요가 없습니다.
Windows 서비스에서 호스팅되는 WCF 서비스에서 새 스레드를 실행할 때주의해야 할 사항은 무엇입니까? 스레드는 어떤 경우에 중단됩니까?
.NET 4.5.2
http://hangfire.io와 같은 배경 그림을 볼 수 있습니다. 이것은 Windows 서비스에서 실행할 수 있으며 내구성 백그라운드 작업 실행을 제공합니다. –