장기간 일괄 처리 작업을 해고해야하고, 오랫동안 우리는 몇 시간이 걸릴 수있는 직업에 관해 이야기하고 있습니다. 이 장기 실행 작업을 실행하는 논리를 가진 ejb는 NoSQL 저장소와 통신하여 데이터 등을로드합니다.장기간 실행되는 Java EE 작업을 시작하는 방법은 무엇입니까?
따라서 JMS MDB를 사용하여 비동기 적으로 수행합니다. 그러나 각 작업이 잠재적으로 최대 1 시간 (최대 4 시간)을 취할 수 있으므로 MDB의 onMessage() 메소드가 오랫동안 기다리지 않아도됩니다. 그래서 MDB를 배치 ejb 러너 호출 후 바로 풀에 반환 할 수 있도록 onMessage() MDB 메서드 내에서 비동기 ejb를 시작하려고합니다.
asynchrous ejb 메서드 호출을 MDB와 결합하는 것이 합리적입니까? 대부분의 샘플은 동일한 것을 달성하기 위해 1 또는 다른 것을 사용하도록 제안합니다.
MDB에서 호출 할 ejb가 비동기 적이 지 않으면 MDB가 잠재적으로 오랜 시간 동안 대기합니다.
알려 주시기 바랍니다.
감사합니다. 그래서 일반적으로 onMessage (mdb)를 사용하여 비동기 bean을 실행하면 mdb가 풀에서 차단되는 것을 막을 수 있다고 생각하는 것이 맞습니까? 이것이 내가 원하는 것이지만 당신이 맞다면, 비동기 ejb 자체가 쓰레드를 차단할 것이지만 최소한 작업을 시작하기위한 메시징 인터페이스가있다. - 다른 하나는 mdb가 트랜잭션이되지 않을 것입니다. 이 경우 mdb 또는 mdb에서 호출 된 async ejb에 시간 초과 플래그를 설정해야합니까? – user983022
예. 그리고 내가 언급 한 거래 thingy. –