【问题标题】:NATS JetStream subscription in ASP.Net CoreASP.Net Core 中的 NATS JetStream 订阅
【发布时间】:2022-08-20 00:14:12
【问题描述】:
我正在订阅 NATS Jetstream 频道并处理从 NATS 服务器收到的消息。我可以通过连接到 NATS 服务器并订阅主题在控制台应用程序中完成此操作。现在我正在尝试在 ASP.Net 核心应用程序中配置订阅,以便它始终侦听频道并处理它收到的消息。有人可以帮助我如何以及在哪里配置 ASP.Net 核心应用程序? TIA。
标签:
c#
asp.net-core-3.1
subscribe
jetstream
nats.io
【解决方案1】:
您可以实施托管服务并将其安装到您的核心应用程序。见docs
粗样本:
public class NatsConsumerHostedService : IHostedService
{
private IAsyncSubscription? _subscription;
public async Task StartAsync(CancellationToken cancellationToken)
{
if (!cancellationToken.IsCancellationRequested)
{
// _subscription = await natsClient.Subscribe(...);
}
}
public async Task StopAsync(CancellationToken cancellationToken)
{
await _subscription?.DrainAsync();
_subscription?.Unsubscribe();
}
}
安装它:
var builder = WebApplication.CreateBuilder(args);
// myriad of service registrations could go here...
builder.Services.AddHostedService<NatsConsumerHostedService>();