【问题标题】:Can we query messages based on message content in Azure Service Bus?我们可以根据 Azure Service Bus 中的消息内容查询消息吗?
【发布时间】:2020-04-11 17:43:45
【问题描述】:

有什么方法可以根据消息的内容删除消息吗?由于所有这些消息都存储在 Bus 中,我们是否可以过滤消息并仅获取/删除具有相同用户 ID/电子邮件(消息内容中的属性)的消息?

如果我们使用主题并在消息头/用户属性中添加用户的唯一标识符。那个时候可以过滤吗?我的要求也是过滤主题中的预定消息。

【问题讨论】:

    标签: azureservicebus


    【解决方案1】:

    我们可以过滤消息并仅获取/删除具有相同内容的消息吗 user-id/email(消息内容中的一个属性)

    AFAIK,答案是否定的。您不能基于自定义属性对消息进行服务器端过滤。您只需要在客户端获取消息并进行过滤。

    更新

    如果我们使用主题并在消息中添加用户的唯一标识符 标题/用户属性。那个时候可以过滤吗?我的要求 也是过滤topic中的定时消息。

    如果您设置了过滤规则,以便根据这些规则将消息发送到不同的订阅,那么删除这些消息会变得更容易。在这种情况下,只有满足过滤条件的消息才会出现在订阅中,因此您可以简单地以Receive/Delete 模式获取所有消息以删除所有消息。同样,即使在这种情况下也不支持服务器端过滤。

    【讨论】:

    • 抱歉,我已经编辑了帖子。你能回复一下吗?
    • 我们也可以过滤预定的消息吗??
    • Can we also filter the scheduled messages - 不。我刚刚回答了另一个关于预定消息的问题:stackoverflow.com/questions/61153962/…
    • 在 azure 应用服务中是否有任何其他方式来实现基于用户 ID(这是消息元数据中的用户属性)删除消息的功能。当用户取消订阅应用程序时,我们需要从队列等数据结构中删除他的所有消息(它们可以在队列中的任何位置)。我们希望它像队列一样具有可扩展性。
    • 不幸的是,我不知道这种情况的任何解决方案。
    猜你喜欢
    • 2022-08-17
    • 2020-09-18
    • 1970-01-01
    • 2022-10-08
    • 1970-01-01
    • 2021-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多