gpt4 book ai didi

azure - 使用 Azure 总线服务时,ServiceBus/ServiceBusTrigger 方法与使用 QueueClient 的方法有什么区别?

转载 作者:行者123 更新时间:2023-12-03 05:07:26 25 4
gpt4 key购买 nike

因此,我目前正在尝试让 Azure 总线服务工作,在其中创建一个队列,然后将消息放入队列中,然后在其他位置接收消息,并使用消息传递的数据运行一些代码。我已经完成所有设置并正常工作,就像我可以发送消息并接收它一样,但是存在一些问题。在研究过程中,我发现完成同一任务似乎有两种不同的方法。

首先:

创建消息:

        public static void CreateMessage(string data, [ServiceBus("QueueName")] out string output)
{
output = data;
}

接收消息:

public static void ProcessMessage([ServiceBusTrigger("QueueName")] string data)
{
//Do something with data

}

注意:我正在尝试使用这种方法,在接收消息时,接收到的数据为空。任何有关此问题的帮助将不胜感激。

其次:

创建消息:

 var client = QueueClient.CreateFromConnectionString(connectionString, queueName);
var message = new BrokeredMessage("This is a test message!");

client.Send(message);

接收消息:

      var queueName = "QueueName";

var client = QueueClient.CreateFromConnectionString(connectionString, queueName);

client.OnMessage(message =>
{
//do something with data
});

有几个问题。

1.这两种方法有什么区别,分别应用在什么地方?

2.虽然我使用第一种方法来尝试简单地发送字符串,但任何人都可以告诉我为什么即使收到消息,“数据”仍为空。

最佳答案

1.What is the difference in these two methodologies, and where should each be applied?

第一种方法使用 Azure Webjob SDK 创建消息并接收消息。第二种方法使用 Azure .Net 库。我们可以使用 webjob 非常轻松地创建调度程序后台任务。 WebJobs SDK 具有一个绑定(bind)和触发系统,可与 Microsoft Azure 存储 Blob、队列和表以及服务总线队列配合使用。如果您选择.Net库,并想用它来做一些触发工作,我们需要编写我们的逻辑代码。

data is null when received

您的意思是触发了ProcessMessage方法,但数据值为null?根据我的测试,它正确显示了该值。我使用 QueueTrigger 将消息发送到服务总线,然后在 ServiceBusTrigger 中接收该消息。以下是我测试过的代码。

enter image description here

请仔细检查您的代码。如果可能,请删除您的敏感连接字符串,上传到 onedrive,然后在此处共享链接。这将有助于我们更好地重现您的问题。

关于azure - 使用 Azure 总线服务时,ServiceBus/ServiceBusTrigger 方法与使用 QueueClient 的方法有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38787023/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com