대용량 전송에서 사가를 사용하여 여러 서비스에서 활동을 조율하는 방법을 조사 중입니다. 무용담의 수명은 짧습니다 - 모두 잘되면 2 초 미만입니다.masstransit deferred in sagas
내 경우에는 클라이언트가 명령을 요청하고, 사가가 해당 명령을 처리하고, 메시지가 수신 될 때 일부 상태 변경을 거쳐 결국 첫 번째 명령에 응답하는 요청/응답 방식을 사용하고자합니다. 무용담을 시작한 시점에서 클라이언트는 응답을 받고 무용담의 결과를 표시 할 수 있습니다.
이 시점에서 볼 수 있듯이 컨텍스트는 더 이상 초기 요청을 인식하지 못합니다. 이 방법으로받은 메시지에 어떻게 회신 할 수 있습니까? 첫 번째 이벤트를 처리 할 때 사가 데이터에 유지할 수있는 무언가가 있으며 나중에 회신하기 위해 사용할 수 있습니까? 요청을 처리 할 때
// client
var response = await client.Request(requestMessage);
// saga
During(SomeState,
When(RequestReceived)
.Then(...)
.Respond(c => MakeResponseMessage(c))
.TransitionTo(Whatever)
)
그래서 당신이 응답 할 수 있습니다 :