为了账号安全,请及时绑定邮箱和手机立即绑定

具有辅助角色的 Azure 服务总线主题和订阅

具有辅助角色的 Azure 服务总线主题和订阅

C#
潇潇雨雨 2021-11-21 10:55:29
所以我最近得到了使用的需要Service Bus Topic and Subscriptions,我已经关注了很多文章和教程。我已经能够成功地实现 Microsoft 的服务总线入门主题,并且还成功地使用Visual Studio 2017's Worker Role模板来访问数据库。但是,我对如何正确地“结合”两者感到困惑。虽然服务总线入门主题文章展示了如何创建 2 个应用程序,一个用于发送,一个用于接收然后退出,但该Worker Role模板似乎无休止地循环使用await Task.Delay(10000);.我不确定如何正确地“网格化”两者。从本质上讲,我希望我Worker Role能一直活着并永远聆听订阅的条目(或直到它明显退出)。任何指导都会很棒!PS:如果您有兴趣,我已经问过一个相关的问题,关于我应该在StackExchange - Software Engineering 的案例场景中使用的适当技术。using System;using System.Text;using System.Threading.Tasks;using Microsoft.Azure.ServiceBus;namespace TopicsSender {    internal static class Program {        private const string ServiceBusConnectionString = "<your_connection_string>";        private const string TopicName = "test-topic";        private static ITopicClient _topicClient;        private static void Main(string[] args) {            MainAsync().GetAwaiter().GetResult();        }        private static async Task MainAsync() {            const int numberOfMessages = 10;            _topicClient = new TopicClient(ServiceBusConnectionString, TopicName);            Console.WriteLine("======================================================");            Console.WriteLine("Press ENTER key to exit after sending all the messages.");            Console.WriteLine("======================================================");            // Send messages.            await SendMessagesAsync(numberOfMessages);            Console.ReadKey();            await _topicClient.CloseAsync();        }
查看完整描述

2 回答

?
慕的地8271018

TA贡献1796条经验 获得超4个赞

考虑到更新问题 Update #1 (2018/08/09) 的复杂性,我提供了一个单独的答案。

发送方和接收方使用不同的库。

发件人 - Microsoft.Azure.ServiceBus

接收器 - WindowsAzure.ServiceBus

Microsoft.Azure.ServiceBus 将消息对象作为 Message,其中 WindowsAzure.ServiceBus 具有 BrokeredMessage。

Microsoft.Azure.ServiceBus 中有一个RegisterMessageHandler方法可用,这是 WindowsAzure.ServiceBus 中 client.OnMessage() 的替代方法。通过使用它,侦听器将消息作为 Message 对象接收。这个库支持异步编程,正如你所期望的。

请参阅此处获取来自两个库的示例。


查看完整回答
反对 回复 2021-11-21
?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

如果您使用的是 Visual Studio,则有一个默认模板可用于使用服务总线队列创建 Azure 云服务和辅助角色。您需要在 WorkerRole.cs 中使用 SubscriptionClient 更改 QueueClient。

然后,工作者角色将保持活动状态,监听来自主题订阅的消息。

您可以在此处找到示例。您应该在云服务中使用 Service Bus Queue 创建 Worker 角色

//img1.sycdn.imooc.com//6199b57700016fa706740285.jpg

查看完整回答
反对 回复 2021-11-21
  • 2 回答
  • 0 关注
  • 191 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信