2017-11-28 2 views
1

구독자 (처리기 스크립트)는 Rabbit MQ 대기열에서 메시지를 수신합니다.Rabbit MQ에 메시지를 다시 추가하는 방법은 무엇입니까?

그런 다음 메시지를 확인하고 일부 작업을 수행합니다. 조건이 맞지 않으면 처리 된 메시지를 대기열에 다시 추가하는 방법은 무엇입니까? Rabbit MQ에서 가능합니까?

+0

시나리오를 지정할 수 있습니까? Rabbit MQ는'Topics','Publish/Subscribers'를 가지고 있는데, 당신이 주제를 만났을 때 그것을 사용하거나 메시지가 필요할 때 구독하지 않는 이유는 무엇입니까? – haifzhan

+0

예를 들어 대기열에 메시지가 있습니다. obj = { 'date': '2017'} 처리기가 채널을 구독하고이 메시지를받습니다. 그런 다음 date == 2017인지 확인하고, 그렇지 않으면 메시지를 대기열에 다시 추가합니다. – Oleg

답변

2

autoAcknowledge에서 false으로 설정하고 "메시지 완료"를 선택하면 거부합니다. 즉, send negative acknowledgement입니다. 메시지가 잠겼다는 것을 알게되면 rabbitmq는 메시지를 다시 대기열에 넣습니다.

+0

여기에서주의해야 할 점은 동일한 사용자가 메시지를 다시 수신하지 못하도록하는 것입니다. – theMayer