首页 文章

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

提问于
浏览
1

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

  • 接收消息

  • 处理邮件

  • 将消息标记为完成/放弃消息处理异常时 .

我在这里面临的挑战是处理时间 . 有时它超过了最大消息锁定时间段(5分钟 - 配置),因此消息被解锁并重新显示以供工作者角色获取(考虑工作者角色的多个实例) . 因此,这会导致再次处理相同的消息 .

我有什么选择来处理这种情况 .

我想过,

  • 接收消息 - 添加到本地变量 - 标记消息完成 . 在异常的情况下,再次将消息发送到队列或单独的队列(让我们说失败的消息队列) . 第二个队列还意味着另一个工作者角色来处理它 .

  • 在处理过程中有一个foreach循环运行 . 所以我想到了使用Parallel.Foreach . 但不确定它会给出多少时间,并且在天蓝色中使用Parallel时也会阅读一些有关问题的帖子 .

建议,修复欢迎 .

3 回答

相关问题