gpt4 book ai didi

c# - 用于处理 azure 服务总线队列中的消息处理的选项

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

我正在开发一个使用 azure 服务总线队列的命令处理应用程序。命令从网站发出并发布到队列,队列消息由辅助角色处理。处理涉及根据队列消息值从数据库和其他源获取数据并将其发送到不同的主题。流程为,

  1. 接收消息
  2. 处理消息
  3. 将消息标记为完成/在处理异常时放弃消息。

我在这里面临的挑战是处理时间。有时,它超过了最大消息锁定时间段(配置的 5 分钟),因此消息被解锁并重新出现以供辅助角色拾取(考虑辅助角色的多个实例)。所以这会导致相同的消息被再次处理。

我必须采取哪些选择来处理这种情况?

我想过,

  1. 接收消息 - 添加到局部变量 - 将消息标记为完成。如果出现异常,请再次将消息发送到队列或发送到单独的队列(让我们说失败的消息队列)。第二个队列也意味着另一个 worker 角色来处理它。

  2. 在处理过程中,有一个运行的 foreach 循环。所以我想到了使用 Parallel.Foreach 代替。但不确定需要多少时间获得它会给予并且还阅读一些关于使用时问题的帖子平行于 azure 。

欢迎提出建议、修复。

最佳答案

Aravind,在这种情况下你绝对可以使用 SB 队列。使用最新的 SDK,只要您继续处理消息,您就可以更新消息的锁定。详情请见:http://msdn.microsoft.com/en-us/library/microsoft.servicebus.messaging.brokeredmessage.renewlock.aspx

这类似于更新可见性超时的 Azure 存储队列功能:http://msdn.microsoft.com/en-us/library/windowsazure/microsoft.windowsazure.storage.queue.cloudqueue.updatemessage.aspx

关于c# - 用于处理 azure 服务总线队列中的消息处理的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14126557/

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