让我们考虑一个连续将其活动消息作为Q1发送到azure队列的设备。每个消息,我有2个属性,一个是MessageContent,另一个是我们需要将MessageContent推送到另一个消息内容的时间排队为Q2。我的问题是请帮助找到队列之间的间隙(基于时间配置从Q1到Q2触发消息的机制)。
答案 0 :(得分:2)
ScheduledEnqueueTimeUtc
类的BrokeredMessage
属性是什么。像这样使用它:
var message = new BrokeredMessage(content)
{
ScheduledEnqueueTimeUtc = timeToSend
};
queueClient.Send(message);
因此,如果我理解正确,Q1处理器应该从Q1读取内容和timeToSend
并将消息排入Q2,如上所示。
Documentation,请注意这句话:
消息获取时间并不意味着消息将被发送到 同一时间。它会入队,但实际的发送时间 取决于队列的工作量及其状态。
答案 1 :(得分:0)
对于核心 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
延迟消息传递。