2011-10-05 5 views
0

Windows WF 4.0을 사용하여 인바운드 파일의 디렉터리를 모니터링하고 DB 업데이트를 수행하는 간단한 Windows 워크 플로를 구성하려고합니다. 현재 'WCF Workflow Service'를 구축하고 연중 무휴 운영되는 'Windows 서비스'로 호스팅 할 계획입니다.Windows 서비스로 WF 호스팅

앞으로는 ASP.NET/WPF 응용 프로그램을 사용하여이 서비스를 사용하여 기본적인 대시 보드 종류의 물건을 만들 계획입니다.

Windows 서비스에서 호스팅되는 WF 파일에 대한 디렉토리 폴링 아이디어를 고려해 볼 때 좋은 생각 인 것 같습니다. 이 죄수는 무엇이 될 수 있습니까?

여기에 단점이 있거나 더 좋은 방법으로 해결할 수 있다면 조언을 구 하시겠습니까?

답변

0

저는 실제로이 작업을 수행하고 있지만 생각보다 조금 복잡하므로 가능하면 피해야합니다.

활동 내에서 차단해서는 안됩니다. 외부에서 입력 (예를 들어, FileSystemWatcher 이벤트)을 기다리고있는 장기 실행 Activity 일 경우 워크 플로는 유휴 상태 여야하며 외부에서 깨우기를 기다려야합니다.

내가 어떻게했는지는 FileSystemWatcher를 호스팅하는 워크 플로 확장을 만들었습니다. 활동이 파일을 볼 준비가되면 책갈피가 생성되어 확장에 전달됩니다.

그러면 확장 프로그램이 FSW를 시작하여 북마크를 유지합니다.

FSW 이벤트가 발생하면 해당 이벤트에 대한 세부 정보가 들어있는 개체를 전달하면서 해당 확장이 다시 시작되었습니다. 활동은 이벤트에 필요한 것을 수행 한 다음 자체 일정을 다시 잡았습니다.

일반적으로이 작업을 수행하지는 않았지만 WF4를 사용하여이 목표를 달성해야하는 몇 가지 요구 사항이있었습니다. WF4를 사용할 필요가 없다면 서비스 내에서 FSW를 회전시키고 이벤트를 소비했을 것입니다.

FSW 이벤트로 수행하는 작업에 대해 자세하게 설명하는 구성에 매우 유연해야한다고 생각하지 않는 한, 서비스 배포 중에 자주 변경되지 않을 것으로 예상되는 경우 WF4를 건너 뜁니다.

+0

감사합니다. WF가 디렉토리/파일 모니터링과 같은 필요성을 충족 시키도록 설계되지 않았다는 것을 의미합니까? SOA를 사용하는 산업에서 그러한 활동이 매우 일반적이지 않습니까? WF를 사용하여 그것을 달성하기위한 패션에 대해 고려해 보는 것이 좋을까요? – thinkster

+0

@ Sriraj.P : 디렉터리 모니터링을 위해 구운 활동이 없습니다. 모니터링 디렉토리는 일종의 오래된 학교입니다. 도대체 누가 파일을 디렉토리에 떨어 뜨 렸을까요? 오, 잠깐, 내가해야만 해. 그래서 너는 그것을 너 자신 굴려 야한다. 내 대답이 암시 하듯이, 필자가 설명한 라운드 방식을 사용하여 올바르게 구현할 수 있습니다. 워크 플로 파운데이션 4를 사용하여 디렉토리를 모니터링하지 않는 것이 좋을 경우를 제외하고는 권장하지 않습니다 * 귀하의 경우 디렉토리를 모니터링 한 다음 WF를 생성하여 생성 된 모든 파일의 내용을 처리하는 것이 더 좋을 수 있습니다 * . 두 세계 모두 최고입니다. – Will

+0

그건 길 인 것 같습니다. 귀하의 의견을 보내 주셔서 감사합니다! – thinkster

관련 문제