Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Azure函数处理Azure服务总线队列消息_C#_Azure_Azure Functions_Azureservicebus - Fatal编程技术网

C# 使用Azure函数处理Azure服务总线队列消息

C# 使用Azure函数处理Azure服务总线队列消息,c#,azure,azure-functions,azureservicebus,C#,Azure,Azure Functions,Azureservicebus,因此,我们希望在应用程序中卸载一些处理,以提供更好的用户体验,同时仍能完成这些繁重的任务,我们已经找到了进入Azure服务总线队列的方法 我了解如何将数据推送到队列,以及消息队列背后的基本思想,但我很难理解的是,当消息队列出现时,如何处理它们。只要想一想,听起来应该有一些方法来实现Azure函数,它可以在消息传入时侦听,但是如果没有持续的轮询,我该如何实现呢?我知道你可以使用OnMessage订阅队列,但是这如何与Azure函数配合使用呢 比如现在我们正在做这样的事情 var client =

因此,我们希望在应用程序中卸载一些处理,以提供更好的用户体验,同时仍能完成这些繁重的任务,我们已经找到了进入Azure服务总线队列的方法

我了解如何将数据推送到队列,以及消息队列背后的基本思想,但我很难理解的是,当消息队列出现时,如何处理它们。只要想一想,听起来应该有一些方法来实现Azure函数,它可以在消息传入时侦听,但是如果没有持续的轮询,我该如何实现呢?我知道你可以使用OnMessage订阅队列,但是这如何与Azure函数配合使用呢

比如现在我们正在做这样的事情

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

BrokeredMessage message = new BrokeredMessage();

while ((message = client.Receive(new TimeSpan(hours: 0, minutes: 0, seconds: 30))) != null)
{
    Console.WriteLine(string.Format("Message received: {0}, {1}, {2}", message.SequenceNumber, message.Label, message.MessageId));
    message.Complete();

    Console.WriteLine("Processing message (sleeping...)");
    Thread.Sleep(1000);
}

Console.WriteLine("Finished listening Press ENTER to exit program");
Console.ReadLine();

但在这种情况下,我们只是在模拟投票,对吗?这感觉不是一个好的解决方案。我在设计中是否认为这是错误的?

Azure ServiceBus的工作原理是将新消息推送到连接的客户端,而不是让客户端轮询队列

通过ServiceBusAPI,您可以使用
OnMessage
方法来设置消息泵,但是如果您使用的是Azure函数,那么这一切都可以通过使用服务总线触发器来完成

您只需将Azure函数配置为指向要侦听的队列。将新消息添加到队列中时,将触发函数,并将消息传递到其中

请看服务总线触发器示例:


Azure ServiceBus的工作原理是将新消息推送到已连接的客户端,而不是让客户端轮询队列

通过ServiceBusAPI,您可以使用
OnMessage
方法来设置消息泵,但是如果您使用的是Azure函数,那么这一切都可以通过使用服务总线触发器来完成

您只需将Azure函数配置为指向要侦听的队列。将新消息添加到队列中时,将触发函数,并将消息传递到其中

请看服务总线触发器示例:


一个小的更正-代理不会将消息推送到客户端。Azure Service Bus客户端有一个消息泵运行在一个单独的线程上,该线程正在轮询消息。谢谢,我觉得这是我一直在寻找的,但就是找不到使用此方法的确切方法。一个小的更正-代理不会将消息推送到客户端。Azure Service Bus客户端在一个单独的线程上运行一个消息泵,该线程正在轮询消息。谢谢,我觉得这就是我要寻找的,但就是找不到使用这种方法的确切方法。