Коротко о моем сценарии попытка тестирования заключается в следующем: оркестратор передает информацию, необходимую для обработки загрузки, в действие (
Код: Выделить всё
ResumeUpload
Для этого я установил "functionTimeout": "00:01:00" в моем файле host.json и изменил ResumeUpload< /code> ждать бесконечно, используя Task.Delay().
Это работает нормально, пока не истечет тайм-аут, и в этот момент я ожидаю, что VS остановится на точке останова в оркестраторе, перехватив TaskFailedException; вместо этого dotnet.exe просто закрывается, и сеанс отладки завершается.
Оркестратор и активность (упрощенно):
Код: Выделить всё
[Function(nameof(RunOrchestrator))]
public static async Task RunOrchestrator([OrchestrationTrigger] TaskOrchestrationContext context)
{
var logger = context.CreateReplaySafeLogger(context.Name);
var uploadRequest = context.GetInput();
try
{
await context.CallActivityAsync(nameof(ResumeUpload), uploadRequest);
}
catch (TaskFailedException ex)
{
// This is never reached!
logger.LogError(ex, "inspect task failure exception");
}
}
[Function(nameof(ResumeUpload))]
public static async Task ResumeUpload([ActivityTrigger] UploadRequest uploadRequest, FunctionContext context)
{
// Force this activity to time out
await Task.Delay(TimeSpan.FromHours(1));
}
Код: Выделить всё
[2024-11-06T17:10:06.427Z] Microsoft.Azure.WebJobs.Host: Timeout value of 00:01:00 was exceeded by function: Functions.ResumeUpload.
[2024-11-06T17:10:08.451Z] A function timeout has occurred. Restarting worker process executing invocationId '9d808fd3-6274-4211-9dcf-d514e8fe3ec2'.
[img]https:// i.sstatic.net/mVMlRJDs.png[/img]
Я часами просматривал Google и не встретил никого, кто бы сообщал об этой проблеме, и в ходе поиска я встретил несколько примеров. это показывает, что то, что я пытаюсь сделать, должно быть возможным, например:
- https://github.com/ Azure/azure-functions-durable-extension/issues/2697#issuecomment-1861737761
- https://learn.microsoft.com/en-us/azure ... s/durable/ Durable-functions-error-handling?tabs=csharp-isolated#custom-retry-handlers
Подробнее здесь: https://stackoverflow.com/questions/791 ... ng-locally