문제

내 웹 앱에서 기능을 구현하여 클라이언트가 일부 데이터를 입력하고 제출 버튼을 클릭하여 보고서를 생성 할 수 있도록합니다.

문제는 보고서 생성에 많은 시간이 걸리고 사용자가 입력 한 데이터가 잘못된 경우 보고서가 생성되지 않을 수 있다는 것입니다.

완전한 보고서 생성 작업에는 많은 하위 작업이 있으며 클라이언트가 제출 한 다음 해당 페이지 바로 아래에 제출할 때 원합니다.

- Validating input data ------ Done
- Fetching the data     ------ In Progress
 and so on,

웹 계층의 struts2, jQuery를 사용하여 어떻게이를 달성 할 수 있습니까?

모든 도움은 대단히 감사하겠습니다.

감사

도움이 되었습니까?

해결책

우리는 비슷한 문제가있었습니다. 트랜잭션은 일반적으로 20 초, 때로는 1 분도 걸립니다. 우리는 더 쉬운 솔루션이있을 것이라고 생각했지만 이와 같은 계획을 세웠습니다.

  1. 장기적인 요청이 접수되면 세션이 생성되고 요청을 처리하기 위해 새 스레드가 생성됩니다.
  2. "데이터 수집 ..."를 표시하기 위해 페이지가 즉시 텍스트로 반환됩니다. 이 페이지에는 매 초마다 새로 고침 할 타이머가 포함되어 있습니다. Reload URL에는 쿼리 매개 변수에 세션 ID (httpsession을 사용하지 않음)가 포함되어 있습니다.
  3. 작업 핸들러가 세션 ID가있는 요청을 볼 때 세션이 시작되었음을 알 수 있습니다. 작업 스레드가 업데이트되는 상태 변수를 확인하십시오. 완료되지 않은 경우 "DB1에서 데이터 검색 ..."라는 새로운 상태로 페이지를 업데이트합니다. 이것이 다시로드로 완료되면 깜박입니다. 주의를 기울이면 Ajax를 사용하여 상태를 업데이트 할 수 있습니다.
  4. 작업 스레드가 완료되고 페이지가 전달 될 준비가되면 전화는 간단히 결과를 반환합니다.

우리는로드 밸런서와 약간의 문제를 일으켰습니다. 체계가 작동하려면 모든 재 장전이 동일한 서버로 돌아와야합니다. 다행스럽게도로드-밸런서는 세션 ID를 기반으로 스티커 라우팅을 지원합니다.

다른 팁

Struts2 ExecuteAndwait 인터셉터를 살펴보십시오. http://struts.apache.org/2.x/docs/execute-and-wait interceptor.html

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top