[英]Durable function Timeout
我正在使用 Azure Durable Functions.Net Core。
[FunctionName("Calculate")]
public async Task RunOrchestrator(
[OrchestrationTrigger] IDurableOrchestrationContext context, ILogger log)
{
await context.CallActivityAsync<object>(FuncConstants.Cal1, null);
await context.CallActivityAsync<object>(FuncConstants.Cal2, null);
await context.CallActivityAsync<object>(FuncConstants.Cal3, null);
await context.CallActivityAsync<object>(FuncConstants.Cal4, null);
await context.CallActivityAsync<object>(FuncConstants.Cal5, null);
await context.CallActivityAsync<object>(FuncConstants.Cal6, null);
await context.CallActivityAsync<object>(FuncConstants.Cal7, null);
await context.CallActivityAsync<object>(FuncConstants.Cal8, null);
await context.CallActivityAsync<object>(FuncConstants.Cal9, null);
}
[FunctionName("Starter_Calculation")]
public static async Task<HttpResponseMessage> HttpStart(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post")] HttpRequestMessage req,
[DurableClient] IDurableOrchestrationClient starter,
ILogger log)
{
string instanceId = await starter.StartNewAsync("Calculate", null);
return starter.CreateCheckStatusResponse(req, instanceId);
}
在這里,每個 function 需要超過 5-6 個小時來執行一些邏輯計算(算術運算),因為它們要處理超過 27-30 百萬條數據庫記錄。
I'm getting the error for the first function itself as "Timeout value of 00:30:00 was exceeded by function
. In Azure, I'm using Premium App Service Plan
, so I can set AlwaysOn
.
我有一些問題:
請指教。
如果您使用的是高級或專用(應用程序服務)計划,則 function 的默認超時為 30 分鍾 - 這就是您所要達到的。
您可以通過在 host.json 中配置functionTimeout
來擴展它。
對於這些計划中的任何一個,技術上都沒有最大超時時間。 雖然對於高級版,執行只能保證 60 分鍾。
請參閱文檔: https://docs.microsoft.com/en-us/azure/azure-functions/functions-host-json#functiontimeout
使用持久函數避免超時有兩種主要策略:
第二個策略很有價值 - 較小的工作單元可以在發生瞬時故障時為您提供更好的恢復/恢復體驗。 此外,您可以並行化活動 function 調用以減少整體處理時間。
要並行運行多個活動功能,您可以await Task.WhenAll
多個活動調用 - 在此處查看文檔中的 Fan Out-Fan In 模式中的示例: https://docs.microsoft.com/en-us/azure /azure-functions/durable/durable-functions-cloud-backup?tabs=csharp#e2_backupsitecontent-orchestrator-function
從您的示例中不清楚,您的活動功能是否需要等待前一個完成(即必須串行鏈接在一起),或者它們是否完全獨立,因此可以並行完成。 但是,Durable Functions 的強大之處在於支持各種模式並為您處理許多底層協調。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.