0

대기열에 요청을 넣는 스레드가 1 개 있고 15 분마다 다른 Cron 작업 (스레드)이 실행되고 모든 요청을 대기열에서 가져 와서 처리를 시작해야합니다. 대기열을 비우십시오.전체 대기열을 사용하는 차단 대기열 동기화를 유지하는 방법

어떻게이 동기화를 관리하고 시스템에서 요청이 손실되지 않았는지 확인하십시오. 동일한 큐에 대해 Linked Queue를 사용하려고 생각했습니다. 다른 제안을 환영합니다. 나는 자바에 익숙하지 않으므로이 순진한 질문을한다.

+0

['BlockingQueue.drainTo (Collection)'] (https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/BlockingQueue.html#drainTo-java.util.Collection-) : *이 대기열에서 사용 가능한 모든 요소를 ​​제거하고 지정된 컬렉션에 추가합니다. * – Holger

답변

0

java.util.concurrent 패키지에는 여러 개의 대기열이 있지만, 위에서 설명한 시나리오에 대한 대기열이 하나 있다고 생각하지 않습니다.

블로킹 큐 중 하나를 선택하는 것이 좋으며, 병렬로 작업을 실행하면 15 분마다 큐의 모든 항목이 소모됩니다.