【问题标题】:Peeking Azure ServiceBus messages does not return scheduled messages查看 Azure ServiceBus 消息不会返回计划的消息
【发布时间】:2023-03-30 22:50:01
【问题描述】:

我正在尝试使用 ScheduledEnqueueTimeUtc 来安排消息以供将来处理,但 Peek 只返回 Active 和 Deferred 消息。

这是我用来查看消息的代码:

    public static async Task<IEnumerable<BrokeredMessage>> GetMessagesAsync(string connectionString, string queueName, int take)
    {
        var queue = QueueClient.CreateFromConnectionString(connectionString, queueName);
        return await queue.PeekBatchAsync(take).ConfigureAwait(false);
    }

不返回 ScheduledEnqueueTimeUtc 设置为未来某个时间的预定消息。

在预定时间之后,我收到 State = Scheduled 的消息,但这不是我所期望的。

从名称“ScheduledEnqueueTimeUtc”来看,消息不可见是有道理的,因为它还没有入队。但是,如果我可以有无限数量的预定消息挂在那里却看不到它们,这让我很困扰。

是我弄错了还是有其他方法可以获取未来的预定消息?

【问题讨论】:

    标签: c# azure azureservicebus


    【解决方案1】:

    我发现了问题:我正在将预定消息发送到主题 - 而不是队列。

    显然,这意味着消息在预定时间之前在订阅队列中不可见。

    使用常规队列,Peek 可以按预期工作并返回 Active、Deferred 和 Scheduled 消息,正如人们所期望的那样 :-)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      • 2021-09-08
      • 1970-01-01
      • 2021-12-17
      • 2023-03-28
      相关资源
      最近更新 更多