【问题标题】:Read ASB Scheduled Message ahead of time提前阅读 ASB 预定消息
【发布时间】:2021-06-01 23:31:08
【问题描述】:

是否可以使用ServiceBusClient 提前接收预定消息?无论他们在什么时候排队,我都想立即阅读这些消息并立即处理它们。有一种方法可以读取延迟的ReceiveDeferredMessageAsync 消息,但不能读取预定的消息。有解决办法吗?

我知道ReceiveMessageAsync 可能需要最长等待时间,所以我可以让它继续运行,但在这种情况下,我需要尽快处理消息。

var asbReceiver = new ServiceBusClient(namespaceConnectionString).CreateReceiver(queueName);

var messages = await asbReceiver.ReceiveMessageAsync();

似乎可以通过在创建接收器时附加执行以下操作直接从死信队列中读取,但没有等效的子队列用于调度。

new ServiceBusClient(namespaceConnectionString).CreateReceiver(queueName, new ServiceBusReceiverOptions { SubQueue = SubQueue.DeadLetter });

我们正在使用 azure.messaging.servicebus nuget 包的 7.1.2 版。

【问题讨论】:

    标签: c# azureservicebus


    【解决方案1】:

    似乎可以通过在创建接收器时附加执行以下操作直接从死信队列中读取,但没有等效的子队列用于调度。

    预定消息不存储在单独的子队列中。至少这不会像死信消息和死信队列那样公开。

    可以使用调度期间分配的序列号取消调度的消息。 当消息被安排时,它是在“安排并忘记”的上下文中完成的。当预定消息到达并且不再有效时,应该丢弃/忽略它。

    【讨论】:

      猜你喜欢
      • 2015-12-29
      • 2013-03-07
      • 2015-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-23
      • 1970-01-01
      • 2012-07-14
      相关资源
      最近更新 更多