[우리는 제이보스 (6)을 사용하고,하지만 난이 질문은 어떤 JaveEE 응용 프로그램 서버에 적용 생각] 우리는 (다른 것들 사이) 정말 장기 실행 작업을 수행하도록되어 응용 프로그램 서버를 가지고Java 응용 프로그램 서버에서 장기 실행 작업을 수행하는 방법은 무엇입니까?
(수 시간이 걸릴 것).
작업은 일부 EJB 함수를 호출하여 트리거되지만, 지금까지는이 작업 내에서 전체 작업이 실행되므로 EJB 트랜잭션 내에서 실행됩니다. 이러한 트랜잭션은 오히려 신속하게 시간 초과되며 트랜잭션 시간 제한을 연장하는 것이 올바른 해결책으로 보이지 않습니다.
전체 작업을로드/작업/저장 부분으로 쉽게 나눌 수 있으므로 전체 시간 동안 트랜잭션을 수행해야하는 엄격한 요구 사항은없는 것처럼 보입니다.
그래서 질문입니다. 이것을 수행하는 "올바른"방법은 무엇입니까?
Quartz에 대한 포인터를 보내 주셔서 감사합니다. 이 뒤에있는 아키텍처에 대한 추가 정보는 어디에서 찾을 수 있습니까? 특히 Quartz 작업을 사용하면 트랜잭션 문제를 어떻게 피할 수 있을까요? – stmoebius
Quarts 사이트 자체에서 사용할 수있는 자습서를 이용할 수 있습니다. http://quartz-scheduler.org/documentation/quartz-2.x/tutorials/. 트랜잭션을 위해 Quartz에 태스크를 제출하면 비동기 적으로 태스크가 실행되므로 사용자에게 응답을 다시 보낼 수 있으며, 이후에는 주기적으로 페이지를 새로 고쳐 업데이트를 확인한다. 나는 또한 당신이 비슷한 것을 할 수 있다고 믿습니다. –