如何确保 .NET core 2.2 Web API 中仅运行一个 IHostedService 实例

2023-12-08

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

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


将托管服务与实际应用程序一起包含的能力就像 Core 中的其他功能一样。例如,如果您愿意,您可以在同一个项目中使用所有 MVC、API 和 Razor 页面。然而,在某种程度上,最好将事物分解成单独的应用程序,这里也是这种情况。如果您只需要托管服务的一个实例,则应将其分解为一个单独的项目并部署该项目的一个实例。如果您将其部署在应用程序中,则应用程序的每个实例都会有一个实例;没有办法解决这个问题。

FWIW,如果您可以跳跃,ASP.NET Core 3.0 现在有一个非常适合您的工作服务模板。您不必升级即可单独部署托管服务,但这将使您的生活更轻松。您也可以针对该项目直接使用 3.0;仅仅因为您在一件事上使用 3.0,并不意味着每个项目都必须升级。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何确保 .NET core 2.2 Web API 中仅运行一个 IHostedService 实例 的相关文章

随机推荐