我正在Asp.Net Core Web API应用程序中使用Hang Fire,该应用程序已部署在azure应用程序服务中。
我们只需要运行一些CPU密集型工作和长时间运行的工作。是否可以创建一个不同的App Service并部署一个将运行该App Service中的作业的全新项目?但这将连接到其他App服务所连接到的同一数据库。这样可以吗?还是会有问题吗?
谢谢, 乔
答案 0 :(得分:1)
如果您使用Hangfire从Web应用程序中计划作业,则Hangfire轮询器可能会使应用程序忙得不可开交,永远不会闲着。如果失败,则启用Always-On should prevent的任何(非灾难性)关机功能,以便轮询器始终可以运行。
但是,如果您像我一样,您或您的客户希望该应用在可能的情况下降低速度。因此,您可以使用WebJobs或其他Azure平台计划和排队工具来计划您的任务,这些工具仅针对您的情况而设计。 WebJob可以触发Hangfire管理的仅用于持久性而非计划的任务。托管任务代码可以存在于原始Web应用程序中。
换句话说,如果您由于担心Web应用程序的可靠性而创建单独的App Service,或者因为您认为这是最佳实践,那么我就不必打扰。
另一方面,如果您对增加其他应用服务的复杂性和潜在成本感到满意,并且您有这样做的理由,那么我认为这很好。使用单独的应用程序,您可以重启或关闭一个应用程序而无需关闭另一个应用程序。