У нас есть длительный процесс саги, который включает в себя тайм-ауты, когда время ожидания истекает, когда первое, что происходит, это вызов внешнего источника данных.
Мы задаемся вопросом, уместно ли запрашивать источникнапрямую, и тайм-аут попадет в очереди ошибок, если источник не работает (или если возникла какая-то другая проблема), или нам нужно, чтобы тайм-аут создал и отправил сообщение, которое обрабатывается, и оттуда запрашивает источник (и, таким образом, сообщение достигаеточереди ошибок при возникновении проблемы), а затем ответить обратно исходному отправителю
Мы считаем, что наш код NserviceBus немного чрезмерно сложен, и мы ищем способы его упростить, и нам интересно, хорошо ли этошанс сделать это.
public void Timeout(TimeoutEvent event)
{
bus.send(ExternalServiceCallCmd cmd)
}
public void handle(ExternalServiceCallCmd cmd)
{
manager.CallToExternalService();
}
Если вызов внешней службы завершится неудачно, ExternalServiceCallCmd будет повторен и в конечном итоге попадет в очередь ошибок.
Мы задаемся вопросом, можем ли мы упростить это следующим образом:
public void Timeout(TimeoutEvent event)
{
manager.CallToExternalService();
}
и, если вызов внешней службы завершится неудачно, TimeoutEvent будет повторен и при необходимости попадет в очереди ошибок