【问题标题】:Consume Azure Queue message after X number of daysX 天后使用 Azure 队列消息
【发布时间】:2021-03-18 19:36:30
【问题描述】:

目前,Azure 队列中的消息一旦进入队列就会立即被消耗。有什么方法可以让消息在 Azure 队列中保留一定天数,比如 30 天,一旦达到限制,它应该由处理器或 Web 服务使用?

任何指针或线索都会有所帮助。谢谢。

【问题讨论】:

  • 在准备好处理之前不要将消息移动到队列中?
  • 您可以在 LogicApp 中 Delay 您的消息,然后发布到您的队列进行处理。
  • 好的。谢谢@filburt 那么,天蓝色队列中没有内置机制可以阻止消息在队列中被消耗?
  • @gunr2171 是的,但这不是我想要的选项。我想在队列中发布消息并等待 30 天处理消息。
  • 我所知道的任何排队系统都没有这样的功能——它违背了排队软件的基本原则。我和 Filburt 的建议或多或少是一样的——你需要找到一种外部的方式来阻止消息进入队列,直到它准备好被处理(即 30 天)。

标签: c# azure-servicebus-queues


【解决方案1】:

您回答了自己的问题。 initialVisibilityDelay 仅用于此目的。设置后,消息将在指定的持续时间内对所有呼叫者保持不可见。一旦该时间段过去,消息将出现在队列中。

但请注意:

  • 在初始可见性延迟发送消息后,您将无法在该时间过去之前获取该消息。
  • 目前允许的最大值为 7 天(因此您的 30 天期限将不起作用)。
  • 应设置为小于生存时间值的值。

【讨论】:

    猜你喜欢
    • 2012-06-10
    • 1970-01-01
    • 2014-06-10
    • 1970-01-01
    • 2020-11-27
    • 2020-07-11
    • 2014-02-08
    • 2018-08-26
    • 1970-01-01
    相关资源
    最近更新 更多