다음 프로젝트가 있습니다.Java ScheduledExecutorService producer consumers
백그라운드에서 Spring (3.2) 기반 웹 응용 프로그램 (Tomcat 7)은 몇 가지 작업이 있습니다.
처리를위한 정보가있는 대기열이 있습니다. 이 대기열은 주기적으로 업데이트됩니다 (비어있는 경우에만).
또한이 큐와 프로세스에서 정기적으로 데이터를 대기열에 포함하는 여러 스레드가 있습니다.
예약하려면 ScheduledExecutorService를 사용하고 싶습니다.
방법이 큐를 유지하기 :
나는 질문 \ 몇 가지 문제가 있나요? 내 생각에 그것이 글로벌해야한다고 생각합니다. 나는 그것을 어떤 "홀더"클래스에서 정적으로 만들어야 할까? 이 가난한 desing되지 않을까요?
ScheduledExecutorService를 사용하여이 대기열과 모든 작업을 초기화하는 좋은 곳은 어디입니까? ServletContextLoadingListener는 좋은 장소입니까? Spring에서 이것을 초기화 할 수있는 방법이 있습니까?
정확하게 소비자 스레드 수를 제어해야하는 경우 여러 ScheduledExecutorService 인스턴스를 사용해야합니까?
이 경우 ArrayBlockingQueue가 좋을까요?
고마워요, 약 4 번째 항목, 나는 작업자 스레드에 의한 처리를 위해 일정량의 데이터로 업데이트 가능한 큐를 가질 필요가 있습니다. DelayedWorkQueue는 ScheduledExecutorService 안에 있으며, 거기에있는 작업자 스레드를위한 것입니다. –