Peeking Azure ServiceBus消息不会返回计划的消息

时间:2017-09-06 09:02:37

标签: c# azure azureservicebus

我正在尝试使用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的消息,但这不是我的预期。

来自名称&#34; ScheduledEnqueueTimeUtc&#34;有意义的是,该消息不可见,因为它尚未排队。然而,如果我可以在那里无法看到无限数量的预定消息而烦恼我。

我是否犯了错误或是否有另一种方法来获取未来的预定消息?

1 个答案:

答案 0 :(得分:1)

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

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

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