【发布时间】:2019-08-18 18:09:47
【问题描述】:
ActivityTrigger 持久函数是否仍通过以下消耗计划限制为 10 分钟的最大超时持续时间:
https://docs.microsoft.com/en-us/azure/azure-functions/functions-scale#timeout
我遇到了下面的示例,它似乎运行了 10 分钟以上。
[FunctionName("A_SimulateLongRunningTask")]
public static async Task<object> TaskExecutor([ActivityTrigger] string taskInput, TraceWriter log)
{
dynamic longRunningTask = JsonConvert.DeserializeObject(taskInput);
//Simulate a long running task, based on the provided duration
//taskDurationInSeconds is 700 seconds, which is more than max of 10mins via consumption plan
await Task.Delay(TimeSpan.FromSeconds((int)longRunningTask.taskDurationInSeconds));
return true;
}
https://docs.microsoft.com/en-us/azure/azure-functions/functions-host-json#functiontimeout https://docs.microsoft.com/en-us/azure/azure-functions/functions-scale#timeout
【问题讨论】:
-
您是否真的尝试过运行该活动函数并让它休眠 (Task.Delay()) 的时间长于函数超时时间?我认为这应该行不通。
-
很高兴您链接了所有相关文档,但这似乎不是我能找到的明确答案。 @silent,我不相信函数超时适用于持久函数。 OrchestrationTrigger 有一些模式可以在 while 循环中运行(例如:docs.microsoft.com/en-us/azure/azure-functions/durable/…),但我不确定 ActivityTrigger 的生命周期。我认为它也是不受约束的,但想澄清一下。
标签: azure azure-functions azure-functions-runtime