2009-07-31 5 views
2

이 프로세스를 구현하는 것이 더 좋은 다중 사용자 환경 (tomcat-servlet 통해)에서 프로세스를 실행하려면 (이 프로세스를 완료하는 데 몇 시간이 걸렸습니다)? 1) 스레드 또는 2) JMS에서 장점과 단점은 무엇입니까?스레드 또는 JMS 어느 것이 더 낫습니까?

답변

3

JMS를 사용하는 방법을 정확히 알지 못하는 이유는 클라이언트가 대기열에서 요청을 팝하고 작업자 스레드의 일부가 (구성 가능한) 작업자 스레드에서 요청을 꺼내어 처리하기 때문입니다. 필자의 경우에는 MDB를 사용하여 작업자 스레드를 구현하는 메커니즘으로 사용할 수 있습니다.하지만 이는 구현 세부 사항입니다.

그래서 스레드와 JMS를 대안으로 볼 수 없으며, JMS를 사용하여 스레드를 제어 할 수있는 방법을 더 많이 제공합니다. 한 번에 너무 많은 요청을 처리하는 것을 피할 필요가 있으므로 개념적으로 대기열이 필요하므로 JMS를 사용하여이를 달성 할 수 있습니다.

결과를 전달하는 방법과 같이 알아낼 다양한 세부 정보는 브라우저가 몇 시간 동안 매달려 있지 않은지 확인하는 것입니다. 어떤 종류의 Ajax 폴링이나 코멧 푸시?

다른 생각 하나 - 몇 시간이 걸리는 단일 처리 단위? 이는 여러 단계로 나뉘어서 이익을 얻을 수 있습니다 (다시 JMS 대기열에 의해 중재 됨). 그런 식으로 충돌이 모든 것을 다시 정사각형으로 보내지는 않습니다.

0

두 번째 옵션 즉, 을 작성하십시오. Tomcat의 서블릿이 JMS 클라이언트 (JMS 컨테이너의 MDB가 바람직 함)에게 메시지를 보내도록하십시오. 거기, 긴 과정을 해고하십시오. 서블릿 (옵션 1)에 새 스레드를 작성하는 대신이를 수행하는 것이 바람직하지 않습니다.

0

핵심 요소는 다음과 같습니다. 최대 동시 요청 요청 수는 무엇이며 오버플로 처리 전략은 무엇입니까?

한 번에 몇 가지 요청 만받는다면 스레드가 괜찮습니다. CountdownLatch를 유지하는 간단한 백그라운드 스레드는 오버 플로우를 처리하는 데 사용될 수 있습니다.

많은 요청이 예상되는 경우 JMS가 작업에 더 적합 할 수 있습니다.

관련 문제