azure - 用于计算密集型工作的 Azure FunctionApps 与 Azure App Services
问题描述
我有 2 个问题,第一个与托管有关,第二个与要使用的 sdk/库有关:
我需要为人们编写一种工作分配服务调度程序,它将每隔 1 小时运行一次,以在后台运行计算密集型逻辑并将结果推送到我们的数据库中。输入可以是创建时间表的天数、可用人数、要完成的任务数。所以主要是它的计算密集型。
我应该将它托管在 App Service 还是 Azure Function (TimerTrigger) 中?此调度程序作为总后台作业运行,从未从 UI 或任何后端 API 调用。
如果我采用 App 服务方式,我可以选择 Hangfire 或 WebJob。我应该如何决定哪个对我有好处。
当然,以较低成本快速执行是我前进的标准。
解决方案
Azure 功能的一个考虑因素是处理需要多长时间。Azure 函数有一个最大时间限制,具体取决于托管计划。在 Azure 中创建函数应用时,必须为应用选择托管计划。Azure Functions 提供三种托管计划:消费计划、高级计划和专用(应用服务)计划。此处概述了托管计划及其超时持续时间:Azure Functions 规模和托管。
无限持续时间在高级计划或专用计划中(无限执行持续时间 - 保证 60 分钟)。
消费计划的最长持续时间为 10 分钟。
推荐阅读
- python - 如何在以另一个列表的一个元素开头的行列表中查找特定行?
- c - 创建后序二叉树数组的函数
- discord - 会员计数频道 discord.py
- pyspark - 我可以在 pyspark forEach 中使用协程函数吗?
- c - 如何在 dsPIC33F 上正确设置 DMA
- python - 'function' 对象不可下标 - 检查其他类似错误但不属于任何其他错误?
- python-3.x - 如果我想将 Google 表格下载到本地 CSV,是否需要为 Google API v4 定义“redirect_uris”?
- java - 是否可以使用 Kafka 将多个任务组合成一个数据条目?
- php - 如何在引导网站中更改下拉框边框半径。(我正在使用 CodeIgniter 框架)
- matlab - 如何禁用一个图中所有子图中的轴?