首页 > 解决方案 > 用于计算密集型工作的 Azure FunctionApps 与 Azure App Services

问题描述

我有 2 个问题,第一个与托管有关,第二个与要使用的 sdk/库有关:

我需要为人们编写一种工作分配服务调度程序,它将每隔 1 小时运行一次,以在后台运行计算密集型逻辑并将结果推送到我们的数据库中。输入可以是创建时间表的天数、可用人数、要完成的任务数。所以主要是它的计算密集型。

我应该将它托管在 App Service 还是 Azure Function (TimerTrigger) 中?此调度程序作为总后台作业运行,从未从 UI 或任何后端 API 调用。

如果我采用 App 服务方式,我可以选择 Hangfire 或 WebJob。我应该如何决定哪个对我有好处。

当然,以较低成本快速执行是我前进的标准。

标签: azure.net-coreazure-functionsazure-webjobshangfire

解决方案


Azure 功能的一个考虑因素是处理需要多长时间。Azure 函数有一个最大时间限制,具体取决于托管计划。在 Azure 中创建函数应用时,必须为应用选择托管计划。Azure Functions 提供三种托管计划:消费计划、高级计划和专用(应用服务)计划。此处概述了托管计划及其超时持续时间:Azure Functions 规模和托管

无限持续时间在高级计划或专用计划中(无限执行持续时间 - 保证 60 分钟)。

消费计划的最长持续时间为 10 分钟。


推荐阅读