2017-12-05 1 views
0

ActiveMQ 큐에 메시지가 빌드 될 수있는 유스 케이스가 있습니다. 목표는 더 높은 우선 순위를 갖는 것입니다. 가장 새로운 메시지가 먼저 실행됩니다. 일부 시간보다 오래된 우선 순위가 높은 메시지는 낮은 우선 순위로 실행되어야합니다.ActiveMQ가 만료 된 메시지를 실패한 메시지와 다른 큐로 이동합니다.

JMS 선택기는 NOW() 개념을 지원하지 않습니다. (즉)

JMSTimestamp < NOW() - 30 MINUTES 

나는 만료 시간을 사용하라는 제안을 읽었습니다. redelivery policy에 대한 이해에서 만료 된 메시지는 실패한 메시지와 동일한 큐로 이동합니다. 만료 된 메시지를 다른 큐 (queue.A)로 이동 한 다음 실패한 메시지 (DLQ)로 이동하는 방법이 있습니까?

감사합니다.

답변

2

ActiveMQ 5.x에는 표준 브로커 구성 옵션 집합을 사용하여이를 수행 할 수있는 방법이 없습니다. 즉, 만료 된 메시지를 가로 채서 다른 곳에서 보내면이 줄을 따라 뭔가를하는 BrokerPlugin을 작성할 수 있습니다.

ActiveMQ Artemis를 사용하는 경우 원하는대로 설정하면 매우 쉽게 할 수 있습니다. Failed DeliveryExpiry 주소 구성을 사용하면이 시나리오를 처리 할 수 ​​있습니다.

관련 문제