首页 > 解决方案 > 适用于长时间运行活动的 Azure 耐用功能

问题描述

我有一个长时间运行的活动,其执行完成时间将超过 10 分钟,但它是具有许多内部任务的单一活动。我想在消费计划上将这个长期运行的活动作为 Azure Function 运行,而不是在应用程序服务的高级(或)成本因素上运行。但是消费计划上的 Azure 功能有最大值。超时时间为 10 分钟,因此消费计划中的 Azure 功能不适合。

对于上述要求,Azure Durable 功能是正确的选择吗?我可以在消费计划上启动持久功能,并考虑将长时间运行的功能作为持久功能“编排上下文”中的一项活动(尽管我的要求与编排或功能链接无关)以经济高效的方式克服 Azure 功能超时限制.

上述方法在技术上可行吗?Durable 函数“orchestrationcontext/DurableClient”中的活动函数不会在消费计划 10 分钟后超时吗?是否符合最佳实践?请说清楚。

标签: azure-functionsazure-durable-functions

解决方案


函数应该是短期的,它们不应该运行很长时间。函数的优势在于具有小或可变吞吐量的短期执行。

只要有可能,将大型函数重构为更小的函数集,它们可以一起工作并快速返回响应。例如,webhook 或 HTTP 触发函数可能需要在特定时间限制内的确认响应;webhook 需要立即响应是很常见的。您可以将 HTTP 触发器负载传递到队列中以由队列触发器函数处理。这种方法可以让您推迟实际工作并立即返回响应。

看看这个:

https://docs.microsoft.com/en-us/azure/azure-functions/functions-best-practices#avoid-long-running-functions

使用 Durable Functions,您可以轻松地支持长时间运行的进程,应用异步 HTTP API。如果您正在处理需要一些时间来处理有效负载或请求的功能,那么在“应用服务计划、WebJob 或持久功能”下运行是正确的方法。


推荐阅读