提问人:JGeorgeJ 提问时间:11/17/2023 最后编辑:marc_sJGeorgeJ 更新时间:11/17/2023 访问量:52
创建 ASP.NET 核心 Web API 和无限主循环 [已关闭]
Create ASP.NET Core Web API and infinite main cycle [closed]
问:
我还是 C# 的新手。我想做的是创建使用更多内核的应用程序,例如通过具有不间断计算的任务,并通过一些 API 进行双向通信。
问题是我不知道我是否应该选择控制台应用程序并以某种方式添加 API,或者创建一个 ASP.NET Core Web API 并添加新任务。
什么是正确的方法,我该如何开始?
答:
1赞
sandreas
11/17/2023
#1
ASP.NET 使用了一个概念来调用此类任务。HostedService
开始阅读的一个很好的参考是官方文档,网址为:https://learn.microsoft.com/en-us/dotnet/core/extensions/workers?pivots=dotnet-8-0
因此,在您的情况下,我会使用后台的“WebApi”/“ASP.NET 核心”项目,并添加 MessageBus / 事件系统以通过 API 调用与后台服务进行通信。HostedService
为了更灵活,您可以将计算外包到类库类型的额外项目中,以便也可以在命令行应用程序中使用它。
例如:
// Program.cs
// ...
var builder = WebApplication.CreateBuilder(args);
// ...
builder.Services.AddHostedService<MyHostedService>();
而将实现或扩展它的派生物之一:MyHostedService
IHostedService
BackgroundService
public class MyHostedService : IHostedService
{
private readonly IServiceScopeFactory scopeFactory;
public MyHostedService(IServiceScopeFactory scopeFactory)
{
this.scopeFactory = scopeFactory;
}
// ... implement interface methods ...
}
评论
0赞
JGeorgeJ
11/17/2023
这似乎很有趣,肯定会尝试。
评论