所以我试图了解Azure服务总线会话ID,以便在我的队列中创建FIFO。
我的想法非常简单但我不知道在FIFO方面它是否正确。
我正在考虑在队列中创建FIFO的这些步骤:
创建:
首先:检查队列中的消息及其会话ID,并公开ID层次结构。
下一步:使用层次结构中的最新会话ID创建新邮件,并将该值迭代1(+1)
下一步:发送到服务总线队列。
阅读:
首先:检查队列中是否有消息及其会话ID,并公开ID层次结构。
下一步:读取并删除层次结构中最早的会话ID。
下一步:处理...
请记住,我还没有包含错误处理,例如读取和删除部分,因为我已经想到了。
所以问题是这是正确的思维方式,而且,我如何在C#中实现这一点我真的找不到能够直接解释这个概念的东西。
答案 0 :(得分:1)
详细说明:
让我们说您总共有9条队列消息,这些消息分为三个会话,会话ID 1、2和3。然后每组3消息将按顺序进行处理(先进先出)。
但是,如果会话监听器多于一个,则在会话之间或每组消息之间仍可能发生并行性。
存储所有9条消息的队列的每个侦听器/处理器都会锁定共享相同会话ID的所有消息,然后一次处理每条消息,直到会话完成(通常没有更多消息可用)除非您关闭“自动完成”功能并决定在需要时决定手动关闭该会话,否则该会话ID会位于该队列中。)
希望这是有道理的。