내 MSMQ의 Maxtries가 5 인 상황이 있습니다. 5 번 후 nservicebus가 정의한 오류 대기열로 메시지를 보냅니다. 이제 perfomr 추가 작업을 수행 할 때 (일부 프로세스의 상태를 Error로 업데이트해야 함) 이러한 오류 대기열을 읽는 Saga 클래스의 처리기를 작성할 수 있습니까? 사전 하리스NServiceBus Saga에서 오류 대기열 처리기를 작성하는 방법은 무엇입니까?
1
A
답변
2
에서
주셔서 감사가 2.X를 사용하는 경우 오류 큐는 입력 큐입니다 별도의 엔드 포인트를 작성하는 것이 좋습니다. 단점은 메시지가 대기열에서 나옵니다. 여전히 저장소에 저장하려는 경우 데이터베이스 나 다른 유형의 저장소로 해당 저장소를 푸시해야합니다.
메시지를 확인하기 위해 오류 대기열을 폴링하고 해당 상태를 업데이트하는 Saga를 작성할 수도 있습니다. 대기열을 확인할 때마다 다른 시간 초과를 요청해야합니다.
3.0에서는 예외를 제어 할 수 있으며 오류를 처리 할 수있는 고유 한 방법을 구현할 수 있습니다. IManageMessageFailures 인터페이스를 구현하면 작업을 수행 할 수 있습니다.
0
Adam에서 제공하는 솔루션 대신, 메시지를 오류 큐로 보낼 때 발생하는 ServiceControl에서 발생하는 이벤트를 구독 할 수 있습니다. 여기에 대한 공식 문서를 참조하십시오. http://docs.particular.net/servicecontrol/contracts
여기에 설명 된 알림 API는 http://docs.particular.net/nservicebus/errors/subscribing-to-error-notifications입니다. 엔드 포인트에서 직접 "MessageSentToErrorQueue"와 같은 특정 이벤트 (이벤트 메시지 아님)를 등록 할 수 있으므로 오류 큐를 사용할 필요가 없습니다.
고맙습니다. 우선 NServiceBus 3.0을 설치 한 다음 가장 좋은 솔루션이 무엇인지 확인합니다. – user993104