问题描述
在Function执行中遇见Timeout错误: Microsoft.Azure.WebJobs.Host.FunctionTimeoutException
/Timeout value of 00:30:00 was exceeded by function
/Functions.TimerTrigger_UdeskContact
async Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.TryHandleTimeoutAsync(Task invokeTask,CancellationToken shutdownToken,Boolean throwOnTimeout,CancellationToken timeoutToken,TimeSpan timeoutInterval,IFunctionInstance instance,Action onTimeout)
D:\a\_work\1\s\src\Microsoft.Azure.WebJobs.Host\Executors\FunctionExecutor.cs
有什么办法可以缓解执行时间过长的问题吗?
问题解答
在Function的设计中,有一个参数可以设置Funciton的执行时间,参数名为 functionTimeout ,配置在Function的 host.json 文件中。
指示所有函数执行的超时持续时间。它遵循时间跨度字符串格式。
所以除了可以修改functionTimeout的值之外,对于长时间执行的Function,更推荐使用持久函数(Durable Functions: https://docs.azure.cn/zh-cn/azure-functions/durable/durable-functions-types-features-overview)
参考资料:
functionTimeout in host.json : https://learn.microsoft.com/en-us/azure/azure-functions/functions-host-json#functiontimeout