2017-04-30 3 views
2

처리하는 데 너무 오래 걸리면 RabbitMQ가 메시지를 삭제할 수있는 방법이 있습니까?RabbitMQ - 처리하는 데 너무 오래 걸리는 메시지를 삭제합니다.

예를 들어 전자 메일 큐가 있고 소비자 스크립트가 전자 메일을 보내는데 너무 오래 걸리면 메시지를 삭제하고 (배달 못 한 편지 교환에 넣음) 대기열에서 다음 항목을 선택하십시오.

enter image description here

나는 x-message-ttl의 알고 있지만 메시지를 처리하기 시작하면이 무시되기 때문에이 여기에 적용되지 않습니다.

답변

0

브로커에서 원하는 것을 수행하는 방법이 없다고 생각합니다. 불필요한 문자 교환으로 메시지를 이동하려면 해당 상황에서는 가능하지 않은 것으로 보이는 메시지에 reject 또는 nack 개의 답장을 보내야합니다.

예를 들어 EmailSender 서비스와 EmailGenerator 서비스가 있습니다. 다음과 같이 구성 할 수 있습니다.

EmailGenerator은 전자 메일로 메시지를 보냅니다.

EmailSender을 수신합니다.

처리가 완료되면 EmailSenderEmailGenerator에게 sent confirmation 메시지를 보냅니다.

EmailGenerator은 지금까지 성공적으로 전송 된 상태를 추적합니다. EmailGenerator이 X 초 내에 특정 전자 메일에 대해 sent confirmation 메시지를받지 못한 경우 해당 전자 메일 메시지를 다시 보냅니다.

관련 문제