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

在 Azure 函数中按顺序处理服务总线消息(无并发调用)

在 Azure 函数中按顺序处理服务总线消息(无并发调用)

C#
开心每一天1111 2021-06-02 05:04:37
我需要通过“Azure 函数”读取和处理来自 Azure 服务总线队列的消息。消息应该以正确的顺序处理,所以我需要避免并发调用。我为此使用了 Azure Function 服务总线触发器(它是队列的唯一订阅者)。根据文档,我将“servicebus/maxConcurrentCalls”(在 host.json 中)设置配置为 1。在此之上,我使用“Singleton”属性装饰了该函数。除此之外,消息似乎由不同的线程以随机顺序处理。我在这里想念什么?还是我误会了什么?我使用的文档:https : //github.com/Azure/azure-webjobs-sdk/wiki/Singleton主机.json:{  "serviceBus": {    "maxConcurrentCalls": 1  }}天蓝色功能:using System;using System.Threading.Tasks;using Microsoft.ServiceBus.Messaging;[Singleton]public static void Run(BrokeredMessage myQueueItem, TraceWriter log){    Stream stream = myQueueItem.GetBody<Stream>();    StreamReader reader = new StreamReader(stream);    string messageContentStr = reader.ReadToEnd();    log.Info($"New TEST message: {messageContentStr} on thread {System.Threading.Thread.CurrentThread.ManagedThreadId}");       System.Threading.Thread.Sleep(2000);     }这是日志的摘录。如您所见,有不同的线程。并且,例如,“消息 19”出现在“消息 10”之前。是的,我确定我将消息按正确的顺序放入队列中。....2018-05-09T09:09:33.686 [Info] New TEST message: Message 19 on thread 332018-05-09T09:09:35.702 [Info] Function completed (Success, Id=007eccd0-b5db-466a-91c1-4f53ec5a7b3a, Duration=2013ms)2018-05-09T09:09:36.390 [Info] Function started (Id=b7160487-d10d-47a6-bab3-78da68a93498)2018-05-09T09:09:36.420 [Info] New TEST message: Message 10 on thread 39...
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 120 浏览

添加回答

举报

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