我们有多个webapi(微服务)。为了在这些微服务之间进行通信,我们使用Azure服务总线Topic \ Subscription。 webapi控制器如何获取消息订阅,以便api可以处理消息并插入数据库。我不想使用任何天蓝色函数。我想在我的webapi(直接使用微服务)中订阅消息。
答案 0 :(得分:1)
问候!
您可以为主题创建客户端以订阅消息,并在完成必要的过程后将选项设置为完成。 请找到以下示例代码,在这里您可以从主题中阅读订阅消息。
您可以使用WindowsAzure.ServiceBus -Nuget软件包
示例代码:
using Microsoft.ServiceBus.Messaging;
using Microsoft.ServiceBus;
var con = "your connection string for the topic";
var topic = "your topic name";
var subclient = SubscriptionClient.CreateFromConnectionString(con, topic, "yourSubscriptionName");
OnMessageOptions options = new OnMessageOptions();
options.AutoComplete = false;
client.OnMessage(message =>
{
Console.WriteLine("Message:" + message.GetBody<string>());
message.Complete();
}, options);
您可以将其放在单独的方法中,并根据需要使用。 要进行轮询,您可以创建一个网络作业,也可以放置触发网络api的代码,以便它可以同时轮询消息。
我希望这会有所帮助,干杯!! 苏拉杰·雷万卡