2017-12-11 19 views
0

고객에게 대량 전자 메일을 보내기위한 Windows 서비스 응용 프로그램을 개발 중입니다. 내 경우에는 수동으로 시작하고 일부 매개 변수를 전달하는 ASP.Net MVC 웹 응용 프로그램에서 서비스를 중지해야합니다. 요청이 있고이 활동에 대한 일정이 없기 때문에 서비스를 시작한 후 한 번만 완료하면 장기 실행 작업 (100K 고객에게 대량 전자 메일 보내기)을 수행해야합니다.Windows 서비스 응용 프로그램은 장기 실행 작업을 한 번만 수행하고 완료 후 자체적으로 중지합니다.

  1. 이 방법이 맞습니까?
  2. 그렇다면 MVC 응용 프로그램의 진행 상황을 어떻게 추적 할 수 있습니까?

+0

지금까지 사용해 보신 것은 무엇입니까? MVC 응용 프로그램의 진행 상황을 추적하는 방법에 대해 조사해 보셨습니까? – programtreasures

+0

네, 그걸 연구했습니다. SignalR은 진행 상황과 실시간 기능을 추적하는 데 적합한 도구라는 것을 알게되었습니다. –

+0

WCF를 사용할 수도 있습니다! – programtreasures

답변

0

이러한 접근 방식은 잘못된 것입니다, 감사합니다. "Windows 서비스"는 클라이언트가 호출하거나 이벤트가 발생할 때까지 대기하는 일종의 응용 프로그램입니다. (유닉스/리눅스 용어로 데몬이라고 부름)

"서비스"는 일괄 처리를 수행하는 일반 프로그램이어야합니다. Process.Start()로 별도의 프로세스를 시작하기 만하면됩니다. 그것은 귀하의 ASP.NET MVC 응용 프로그램에서 아무것도 차단하지 않습니다, 그냥 그 일을하고 종료.

진행 상황을 추적하는 데는 두 가지 방법이 있습니다. 대기 시간과 함께 WaitFor()와 같은 Process 개체 메서드를 호출하여 작업 완료 여부를 확인할 수 있습니다. 또한 "서비스"응용 프로그램은 파일에 진행 상황을 기록하고 MVC 응용 프로그램은 언제든지 상황을보기 위해 읽을 수 있습니다.

+0

문제는 이미 MVC 애플리케이션 (CRM 종류)을 개발했기 때문에 모듈이 너무 많다는 것입니다. 유익한 전자 메일 구성 및 고객의 전자 메일에 대한 정보가 여기에서 제공되므로 대량 정보 메일을 보내기 위해 다른 모듈을 추가해야했습니다. 이 요구 사항에 대한 귀하의 제안은 무엇입니까? –