2008-11-12 5 views
1

메소드의 인수를 기반으로 장기 실행 프로세스를 수행하는 WCF WS 주소 지정 가능 웹 서비스를 구현해야합니다.WS 주소 지정을 사용하는 Asynchronus 웹 서비스

클라이언트는 데이터베이스 테이블에 직접 전달되므로 결과를 기다릴 필요가 없습니다. 그러나 웹 메서드는 '추적 ID'번호 (실제로 GUID)를 반환해야 클라이언트가 데이터베이스에서 결과를 검색 할 수 있습니다.

  1. 웹 메서드는받은 인수를 가져 와서 새 GUID를 만들고이 정보를 데이터베이스 테이블 (또는 해당 문제의 MSMQ 큐)에 저장합니다. 그런 다음 추적 GUID를 클라이언트에 반환합니다. 외부 서비스 (Windows 서비스는 아마) 지속적으로 폴링 '받은 편지함', 사전에

감사를 각 요청에 대해 장기 실행 프로세스를 수행하고 콜백 서비스에 대한 결과와 응답을 생성하는 것

세카

답변

2

무엇이 질문입니까? 그러나 설명에서 웹 서비스 자체는 비동기 적이 지 않습니다. 자바 웹 애플리케이션에서,이 같은 간단한 웹 애플리케이션 구현합니다 :

  • Web 서비스, 데이터를 저장하는 스레드를 시작하고 GUID
  • 스레드를 반환을 장기적으로 작업을 수행하고 해당 GUID에 대한 결과를 저장
  • guid에 대한 결과를 반환하는 webservice 또는 아직 완료되지 않은 경우에 Fould.

각 스레드는 guid로 명명 된 장기간의 작업을 위해 자체 deamon 스레드 그룹을 사용하는 것이 가장 좋습니다. 그룹의 uncaughtException() 메소드를 오버라이드하여 오류가 발생할 때 guid에 대한 결과로 예외를 저장하십시오.

관련 문제