1

让我们考虑一个设备,它连续地将其活动消息发送到一个天蓝色队列作为 Q1。在每条消息上,我有 2 个属性一个是 MessageContent,另一个是我们需要将该 MessageContent 推送到另一个队列作为 Q2 的时间. 我的问题是请帮助找出队列之间的差距(根据时间配置从 Q1 触发消息到 Q2 的机制)。

4

2 回答 2

2

这就是类Scheduled​Enqueue​Time​Utc属性的BrokeredMessage用途。像这样使用它:

var message = new BrokeredMessage(content)
{
    Scheduled​Enqueue​Time​Utc = timeToSend
};
queueClient.Send(message);

因此,如果我理解正确,Q1 处理器应该读取内容并timeToSend从 Q1 并将消息排入队列到 Q2,如上所示。

文档,注意备注:

消息排队时间并不意味着消息会同时发送。它将被排队,但实际发送时间取决于队列的工作负载及其状态。

于 2017-06-22T12:15:14.280 回答
0

对于 Core 3.1,ServiceBusSender 来自使用 Azure.Messaging.ServiceBus:

var serviceBusMessage = new ServiceBusMessage
{
    ScheduledEnqueueTime = DateTime.UtcNow.AddMilliseconds(30000),
    Body = new BinaryData(message)
};

await sender.SendMessageAsync(serviceBusMessage).ConfigureAwait(false);

您可以使用ScheduledEnqueueTime延迟消息传递。

于 2021-02-21T07:25:49.523 回答