【发布时间】:2022-01-07 14:54:57
【问题描述】:
我正在尝试使用动态订阅者实现一个基本的发布/订阅系统。我需要在我的 .NET API 中动态注册主题订阅者,但似乎我只能从 Azure 门户手动执行此操作。当我的程序启动时,我希望能够以subscribername-{timestamp} 的格式注册主题的订阅者,因为我希望能够部署尽可能多的暂存/开发版本,而不必每次都手动创建这些订阅者.
我觉得这是一个我只是盲目地缺少的基本功能。我可以在使用队列时执行此操作,但如果我尝试对某个主题执行相同操作,则会收到找不到该订阅者路径的连续错误。我在互联网上进行了无止境的搜索,虽然我找到了一些解决方案,但它们非常陈旧,并且通常与 .NET 5 不兼容,或者该软件包已被弃用。我觉得我在违背常规,并且在我想出的东西中遗漏了一些东西,所以我想获得一些关于什么是正确做法的意见。
我目前使用Azure.Messaging.ServiceBus 进行发布和订阅。下面是一些代码-
var processor = ServiceBusClient.CreateProcessor(TopicName, $"DynamicSubscriber-{DateTime.Now}");
try
{
processor.ProcessErrorAsync += ErrorHandler;
processor.ProcessMessageAsync += MessageHandler;
await processor.StartProcessingAsync();
}
catch (Exception e)
{
await processor.DisposeAsync();
await ServiceBusClient.DisposeAsync();
}
finally
{
Console.WriteLine("Press a key to exit.");
Console.ReadLine();
}
【问题讨论】:
-
@PeterBons 真的不知道我怎么没看到这个。你是一个救生员。谢谢彼得!
标签: c# azure azureservicebus .net-5