Amo*_*hid 5 configuration rebus microservices .net-core
我发现使用 Startup.cs 在 ASP.NET Core 执行管道中添加 rebus 非常简洁。我想知道是否有一种同样简洁的方法可以为 Worker 服务或一般的控制台应用程序执行相同的操作。
我见过的大多数 .net core 控制台应用程序都是非常简单的演示应用程序。如果有使用 .net core 控制台应用程序的具体示例配置,请提供。问候 阿穆尔·拉希德
一种方法是添加 Microsoft 的 Microsoft.Extensions.Hosting 包并将后台服务构建为BackgroundService
:
public class MyBackgroundService : BackgroundService
{
readonly IServiceCollection _services = new ServiceCollection();
public MyBackgroundService()
{
// configure the bus
services.AddRebus(
configure => configure
.Transport(t => t.Use(...))
);
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
using var provider = _services.BuildServiceProvider();
// start the bus
provider.UseRebus();
while (!stoppingToken.IsCancellationRequested)
{
await Task.Delay(TimeSpan.FromSeconds(1), stoppingToken);
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后你可以通过添加
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureServices((_, services) =>
{
services.AddHostedService<MyBackgroundService>();
});
Run Code Online (Sandbox Code Playgroud)
在你的启动中。
归档时间: |
|
查看次数: |
2086 次 |
最近记录: |