Когда в Durable Functions происходит сбой действия, исключение направляется обратно в оркестровку с использованием FunctionFailedException
.Неважно, использовали ли вы автоматическую повторную попытку или нет - в самом конце вся деятельность заканчивается неудачей, и вам решать ситуацию.Согласно документации:
try
{
await context.CallActivityAsync("CreditAccount",
new
{
Account = transferDetails.DestinationAccount,
Amount = transferDetails.Amount
});
}
catch (Exception)
{
// Refund the source account.
// Another try/catch could be used here based on the needs of the application.
await context.CallActivityAsync("CreditAccount",
new
{
Account = transferDetails.SourceAccount,
Amount = transferDetails.Amount
});
}
Единственное, что нужно сделать при повторных попытках, - это обработать временную ошибку (поэтому вам не нужно включать безопасный маршрут каждый раз, когда у вас возникают, например, проблемы с сетью).