代码之家  ›  专栏  ›  技术社区  ›  H4p7ic

排序服务总线队列消息

  •  0
  • H4p7ic  · 技术社区  · 8 年前

    我想知道是否有一种方法可以将元数据甚至多个元数据实现到服务总线队列消息中,以便稍后在应用程序中用于排序,但仍保持队列中的FIFO。

    简而言之,我想做的是: 维护Fifo,即队列中的先进先出结构,但由于消息来自不同来源并插入到队列中,我希望能够对消息来自哪个来源进行排序,例如元数据。

    我知道这在可以向消息插入属性的主题中是可能的,但我不确定是否可以在主题消息中实现多个属性。

    希望我清楚地表明我的要求是可能的。

    2 回复  |  直到 8 年前
        1
  •  2
  •   Mikhail Shilkov    8 年前

    我假设你使用。NET API。如果这种情况下你可以使用 Properties 用于编写和读取自定义元数据的词典:

    BrokeredMessage message = new BrokeredMessage(body);
    message.Properties.Add("Source", mySource);
    

    您也可以自由添加多个属性。这对于队列和主题/订阅都是相同的。

        2
  •  1
  •   Sean Feldman    7 年前

    我想知道是否有一种方法可以将元数据甚至多个元数据实现到服务总线队列消息中,以便稍后在应用程序中用于排序,但仍保持队列中的FIFO。

    要在队列中保持FIFO,您必须使用 Message Sessions . 如果没有消息会话,您将 能够在队列本身中维护FIFO。您可以设置一个自定义属性,并在应用程序中使用它,并在收到无序消息时对其进行排序,但您不会像在原始问题中那样以FIFO顺序收到消息。

    如果您放弃在队列上保留顺序的要求,那么@Mikhail提供的答案将适合基于自定义属性的进程内排序。请注意,进程内排序将不是一项微不足道的任务。