나는이 문제가있는 첫 번째 것이 아닐 수도 있다고 생각합니다. 가끔씩 사용자가 서버에 많은 데이터를 제출하면이 데이터 이 응답 페이지에 표시됩니다. 사용자에게 환상을주기 위해 데이터 제출 및 프로세스가 빠릅니다. 일반적으로이 작업은 비동기 적으로 수행됩니다. 이제 문제는 어떤 이유로 데이터가 데이터베이스에 먼저 들어가야하고 이며 응답 페이지에 나타나도록 가져와야합니다. 응답 페이지가 너무 빠르게 사용자에게 으로 표시되면 비동기 전송이 완료되지 않을 수 있습니다. 지금 전화 :ejb에서 잠시 동안 프로세스 실행 일시 중지
Thread.sleep();
내가 setResponsePage()를 호출하기 전에.
하지만 원시 스레드는 EJB에서 권장되지 않습니다. 누구든지 대안을 알고 있습니까? 감사합니다
로직을 2 개의 트랜잭션으로 분리하고 적절하게 정렬하는 것이 좋습니다. 문제는 삽입하는 데 꽤 오랜 시간이 걸릴 수 있다는 것입니다. 예를 들어 여러 크기의 복사본을 클라우드에 업로드하는 동안 이미지의 메타 데이터를 데이터베이스에 삽입합니다. 그래도이 작업을 DB 업데이트 및 이미지 업로드의 두 단계로 구분할 수 있습니다. org.jboss.ejb3.common.proxy.plugins.async.AsyncUtils.mixinAsync()를 지원하는 EJB 3.0을 사용하고 있습니다. 비동기 프록시를 통해 호출 될 때 작업이 얼마나 빨리 수행되는지는 알 수 없습니다. 따라서 합리적인 기간 동안 프로세스를 일시 중지해야합니다. – Wangge
@Wangge 답변을 확장했습니다. – MaDa