AMQP (우리는 토끼 사용) 대기열에서 메시지를 소비하기 전에 2 시간을 기다려야한다는 유스 케이스가 있습니다.스프링 통합을 사용하여 AMQP 대기열을 폴링하는 방법
편집 : 내 사용 사례를 명확히하기 위해 ... 각 개별 메시지를 읽기 전에 2 시간 기다려야합니다. 예 : 메시지 1은 오전 10시에 도착하고 메시지 2는 오후 10:15에 도착합니다. 12p에서 읽히는 메시지 1과 12:15p에서 읽히는 메시지 2가 필요합니다.
우리는 Spring Integration 3.x를 사용하고 있습니다.
int-amqp:inbound-channel-adapter
은 메시지 기반이며 찾을 수있는 폴링 옵션이 없습니다.
내가 생각 한 몇 가지
:- false로
auto-startup
을 설정하고 수동으로 수정 작업을 사용하여 인바운드 채널 어댑터를 시작합니다. How to create a delayed queue in RabbitMQ? - 편집 : 4 옵션을 추가 : 사용
delayer
을에 - 는 폴링 (이 것이 얼마나 쉬운 지 확실하지)를 기반으로 내 자신의 사용자 정의
SimpleMessageListenerContainer
- 구성이 방법을 사용하여 rabbitmq에서 "지연 큐"를 만들기 각 메시지를 2 시간 동안 지연 시키십시오 : http://docs.spring.io/spring-integration/docs/3.0.2.RELEASE/reference/html/messaging-endpoints-chapter.html#delayer
어떤 제안이 있습니까?
감사합니다.주말 다시 생각한 후, 어느 솔루션이 내 문제를 해결할 지 확신하지 못합니다. 유스 케이스를 잘 설명하지 않았다. 각 개별 메시지를 2 시간 정도 기다려야합니다. 옵션 3 또는 새로 추가 된 옵션 4 내 질문에 최고의 솔루션이 될 수 있습니다. –
해당 유스 케이스 (모든 메시지가 2 시간 지연됨)의 경우 옵션 3이가는 길입니다. 나는 지연자를 소개하지 않을 것이다. –