gpt4 book ai didi

asp.net-core - 如何确保只有一个 IHostedService 实例在 .NET core 2.2 Web API 中运行

转载 作者:行者123 更新时间:2023-12-05 05:08:44 24 4
gpt4 key购买 nike

我有一个 .NET Core 2.2 Web API,可以根据需要扩展到多个实例。此 API 有一个后台服务 (IHostedService),一次只能在其中一个实例上运行。

是否有通用的方法或设计模式来确保此服务在任何给定时间点仅在一个实例上运行?

最佳答案

将托管服务与实际应用程序包括在一起的能力就像 Core 中的其他任何东西一样。例如,如果需要,您可以在同一个项目中使用所有 MVC、API 和 Razor Pages。然而,在某个时候,最好将事物分解成单独的应用程序,这里也是如此。如果您只想要托管服务的一个实例,则应将其分解为一个单独的项目并部署其中的一个实例。如果您将它部署在您的应用程序中,那么您的应用程序的每个实例都会有一个实例;没有办法解决这个问题。

FWIW,如果您能成功的话,ASP.NET Core 3.0 现在有一个工作人员服务模板可以很好地满足要求。您无需升级即可自行部署托管服务,但这会让您的生活更轻松。您也可以只为那个项目使用 3.0;仅仅因为您在一件事上使用 3.0,并不意味着每个项目都必须升级。

关于asp.net-core - 如何确保只有一个 IHostedService 实例在 .NET core 2.2 Web API 中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58116722/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com