C# 在Azure App Server中使用Hangfire进行计算成本高昂的操作的替代方案
我有一个Asp.Net核心网站作为应用服务在Azure上运行。该网站的任务是列出各种计算,提供输入屏幕以输入计算值,然后提供报告以查看使用的计算输出和输入。此数据在Azure SQL数据库中持久化,而解决方案本身包含一个实际执行计算的类库项目。这些计算需要一系列输入参数,并返回一系列输出值,然后存储在数据库中。 大多数计算在计算上可能非常昂贵,并且可能需要相当长的时间才能运行(更糟糕的情况是,最多需要一个小时)。目前,我们已经合并了HangFire,以便实际的计算函数可以排队并在后台线程上运行C# 在Azure App Server中使用Hangfire进行计算成本高昂的操作的替代方案,c#,azure,asp.net-core,azure-functions,azure-web-app-service,C#,Azure,Asp.net Core,Azure Functions,Azure Web App Service,我有一个Asp.Net核心网站作为应用服务在Azure上运行。该网站的任务是列出各种计算,提供输入屏幕以输入计算值,然后提供报告以查看使用的计算输出和输入。此数据在Azure SQL数据库中持久化,而解决方案本身包含一个实际执行计算的类库项目。这些计算需要一系列输入参数,并返回一系列输出值,然后存储在数据库中。 大多数计算在计算上可能非常昂贵,并且可能需要相当长的时间才能运行(更糟糕的情况是,最多需要一个小时)。目前,我们已经合并了HangFire,以便实际的计算函数可以排队并在后台线程上运行
BackgroundJob.Enqueue(() => _calculationRunService.RunCalculation(runID));
这是可行的,但随着用户基数的增加和计算变得更加复杂,性能和可扩展性都不是很好。因此,我正在寻找其他Azure服务之一是否适合替换Hangfire部分的一些建议?您说计算需要将近一个小时。你认为争论点是什么
- 中央处理器?你需要更多的核心吗
- 伊奥?您需要缓存(或)高端硬件吗
- 记忆?当计算运行时,您是否看到大量分页李>
- 应优先考虑。这是一种特殊的应用程序服务,可以进行配置
- 如果是cpu密集型作业的另一种替代方案
以上两个是托管服务。或者,您可以使用更高级的硬件和ACU定义自己的虚拟机,以进行除此之外的任何定制 尝试查看Azure函数。它使用无服务器方法,非常适合此类任务