나는의 ActiveMQ에서 데이터를 가져올하고있는 ThreadPoolExecutor에서 실행 집행에 전달해야합니다. 문제는ActiveMQ를하고있는 ThreadPoolExecutor가 작동 함께
, 나는이 작업에 걸릴 유휴 준비 앉아 수영장에서 적어도 하나 개의 스레드가 될 때까지 큐에서 다음 데이터를 가져올 필요가 없습니다.
내가 할 수있는 단지 바쁜 대기 경우 activeCount < poolSize까지. 하지만이 비동기 처리와 함께 모든 솔루션을 주셔서 감사하겠습니다. 미리 감사드립니다.
을 시도 할 수 있습니다. 나에게 당신이 단순히 메시지 처리기를 execute() 태스크를 갖기를 원하는 것처럼 들리면 아무 것도 걱정할 필요가 없다. 집행자가 자유롭게 일하게되면, TPE에 의해 필요하다면 작업이 대기하게 될 것입니다. 메시지를 사용할 수있을 때까지 기다릴 필요없이 메시지 큐에서 실행 프로그램 큐로 밀어 넣기 만하면됩니다. – Gimby
@Gimby, 당신은 맞다, 그러나 이것은 실행을위한 보장 된 공간이있을 때까지 나는 영구의 ActiveMQ에서 데이터를 가져올 수없는 요구 사항입니다. –
메시지가 소비되고 작업이 실행될 때까지 지연이 없어야합니까? 그것의 뒤에 추론을 상상하기가 약간 어렵고, 적절한 추론없이 가능한 해결책이 무엇인지 파악하기가 어렵습니다. 대기열로 설계된 ThreadPoolExecutor를 사용하지 않는 느낌이 들었습니다. – Gimby