【问题标题】:Run background service in .NET Core在 .NET Core 中运行后台服务
【发布时间】:2023-03-31 11:57:01
【问题描述】:

我有一个基于多个库的控制台应用程序和一个触发所有这些库的入口点。所有这些库都有自己的后台线程,但一个启动库会触发所有其他库。我将需要访问这些库已处理的缓存中的数据并提供来自控制器的输出。

我想在 .NET Core 应用程序中使用这些库(作为持续可用的服务)作为后台服务并将其托管在 AWS 中。有没有最好的方法?我查看了 DI,但每次调用控制器时都会丢失/更新实例。我查看了 Hangfire,但不确定它是否适用于此类活动。 一种方法可能是(我不确定)是编写 WCF 服务并将其与 .NET 核心连接。

【问题讨论】:

    标签: .net service asp.net-core


    【解决方案1】:

    您可能想研究在 ASP.NET Core 应用程序中使用 IHostedService。它允许您在 ASP.NET Core 应用程序的进程中运行后台进程。您的 Web api 控制器也可以访问后台进程。这是一篇深入探讨 IHostedService 的博文

    https://www.stevejgordon.co.uk/asp-net-core-2-ihostedservice

    【讨论】:

    • 因为Asp.Net Core 2.1 你可以通过派生Microsoft.Extensions.Hosting.BackgroundService 类来实现IHostedService。它需要更少的代码
    猜你喜欢
    • 2020-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-21
    相关资源
    最近更新 更多