У меня есть Asp. Net Базовый веб-сайт, работающий на Azure в качестве службы приложений. Задача веб-сайта - перечислять различные расчеты, предоставляя экраны ввода для ввода значений вычислений, а затем отчеты для просмотра результатов расчетов и использованных входов. Эти данные сохраняются в базе данных Azure SQL, в то время как само решение включает проект библиотеки классов, который фактически выполняет вычисления. Эти вычисления ожидают серию входных параметров и возвращают серию выходных значений, которые затем сохраняются в базе данных. Большинство вычислений могут быть очень дорогими в вычислительном отношении и могут занять некоторое время (худший случай - до часа). На данный момент мы включили HangFire, чтобы фактическая функция вычислений могла быть поставлена в очередь и запущена в фоновом потоке.
BackgroundJob.Enqueue(() => _calculationRunService.RunCalculation(runID));
Это работает, но не очень эффективно и масштабируемо, поскольку пользовательская база увеличивается и вычисления стать более сложным. Поэтому я ищу несколько советов о том, может ли одна из других Azure служб подойти для замены части Hangfire?