가능하면 바닐라 Java EE 6에서만 Java EE 6에서 다음 작업을 수행하는 올바른 방법을 찾고 있습니다.올바른 방법으로 Java EE 6에서 greedy-worker-pool을 사용하여 작업 대기열을 구현할 수 있습니까?
작업 대기열에 작업을 넣고 대기 상태 인 경우 대기열에서 작업을 가져와야하는 고정 작업자 풀을 갖고 싶습니다.
작업자 개체는 레거시 시스템과 고정 된 관계에 있으므로 모든 작업에 대해 여러 스레드에서 하나의 작업자 개체를 사용할 수 없으며 모든 작업에 대해 새 작업자 개체를 인스턴스화 할 수도 없습니다.
욕심 많은 작업자 패턴이 완벽 해 보이지만 이는 Java SE에만 해당됩니다. EE에서는이를 구현하는 데 올바른 방법이 무엇인지 확신 할 수 없습니다.
제안 사항?
미리 감사드립니다. M.
답변 해 주셔서 감사합니다. 이렇게하면, 예를 들어 레거시 시스템에 상응하는 4 개의 EJB가 있으며 한 번에 하나의 스레드에서만 하나의 EJB 만 사용됩니다. 이제 다른 끝을 보자. 들어오는 요청 (예 : 서블릿)이 그 EJB에 배포되거나 (그로부터 당겨지는) EJB는 아무 것도 할 수 없다 (==> 탐욕스러운 작업자 접근). – user1631581
@ user1631581 아직 설정을 완전히 이해하지 못했습니다. 당신은 4 개의 EJB와 1 개의 레거시 시스템에 대해 말합니다. 왜 고정 된 전화 번호를 가지고 있니? 레거시 시스템은 한 번에 특정 연결 만 가질 수 있습니까? 그리고 당신의 EJB가 레거시 시스템에 연결되어 있다면, 그것은 fire-and-forget 스타일로 서비스를 제공합니까, 아니면 오랜 기간 동안 상태를 유지해야합니까? –
@ user1631581 [계속] 귀하의 의견을 통해 알 수 있듯이 고정 된 수의 근로자가 있으며 가능한 사람은 누구나해야합니다. 그래서 특별한 일을 할 필요가 없습니다. 서블릿은 삽입 된 EJB를 사용할 수 있으며 컨테이너는 작업을 위해 EJB 인스턴스를 제공합니다 (호출자가 독점적으로 사용하도록 보장됨). 어떤 이유로 고정 된 숫자가 있어야하는 경우 컨테이너의 배포 설명자 (예 : glassfish-ejb-jar.xml)에 지정해야합니다. –