NServiceBus가 메시지가 특정 순서로 처리된다는 것을 보장하지 않기 때문에 발신자가 보낸 순서대로 메시지를 처리하는 방법을 찾으려고합니다.nservicebus에서 메시지 순서를 처리하는 방법은 무엇입니까?
보낸 사람은 createOrder 및 reviseOrder 명령을 게시하는 주문 시스템입니다. 보낸 사람은 사용자가 동일한 순서에 여러 개정을 제출할 수있게하여 동시에 수정본 4와 수정 3이 대기열에있을 수 있습니다. 각 리비전에는 리비전 번호와 리비전 코드가있어 비즈니스 로직을 수행하므로 어떤 수정이나 최소한 그 이유를 무시할 수 없습니다.
저장 대상 기록과 개정 번호를 -
내가 가진 아이디어의 몇
은 다음과 같습니다. 보낸 사람은 각 개정 메시지에 개정 번호를 보냅니다. 핸들러는 보낸 사람과 대상 개정 번호를 비교합니다. 일치하는 경우 레코드가 업데이트되고 그렇지 않으면 메시지가 대기열의 끝에 있습니다. 이 방법을 사용하면 수정본 2 메시지가 실패하고 오류 대기열에 들어갑니다. 수정본 3은 절대로 처리되지 않습니다.보낸 사람은 모든 개정 메시지의 모든 개정에 대한 모든 이유 코드의 내역을 보냅니다. 따라서 개정 2 메시지가 실패하면 수정 3 메시지는 모든 이유 Z 드를 갖습니다. 이러한 이유 코드는 대상에 기록되지만 이전 버전의 이유 코드와 관련된 비즈니스 논리는 발생하지 않을 수 있습니다.
이 시나리오에서는 어떻게 설계할까요?
또한 실패한 수정 메시지를 처리하는 방법에 대한 아이디어가 있습니까?
일부 안내는 정말 감사하겠습니다.
감사합니다.
당신에게 누가 복음을 감사드립니다. – maddog
NServiceBus가이 시나리오에 대한 프레임 워크 수준의 지원을 제공하는 것이 얼마나 중요합니까? –
@UdiDahan 시나리오에서 우리는 주문을 요구하는 실수를 저질렀다고 생각했습니다. 내가 다시해야만한다면 나는 위에서 설명한 것과 비슷한 것을했을 것입니다. 더 나은 옵션은 프레임 워크에서 순서를 시행하는 대신 핸들러에서 모든 순서를 지원하는 것입니다.하지만 그것은 제 의견입니다. –