将消息调度到Azure队列的机制 让我们考虑一个设备,它将活动消息连续发送到Azure队列中作为Q1。在每个消息中,我有2个属性,一个是MessageContent,另一个是需要将该消息内容作为Q2推送到另一个队列中的时间。我的问题是请帮助查找队列之间的间隔(根据时间配置触发从Q1到Q2的消息的机制)
这就是将消息调度到Azure队列的机制 让我们考虑一个设备,它将活动消息连续发送到Azure队列中作为Q1。在每个消息中,我有2个属性,一个是MessageContent,另一个是需要将该消息内容作为Q2推送到另一个队列中的时间。我的问题是请帮助查找队列之间的间隔(根据时间配置触发从Q1到Q2的消息的机制),azure,azureservicebus,azure-servicebus-queues,azure-scheduler,azure-monitoring,Azure,Azureservicebus,Azure Servicebus Queues,Azure Scheduler,Azure Monitoring,这就是计划的内容排队时间UtcBrokeredMessage类的属性用于。像这样使用它: var message=新代理消息(内容) { 预定排队时间Utc=时间结束 }; queueClient.Send(message); 因此,如果我理解正确,Q1处理器应该读取Q1中的内容和timeToSend,并将消息排队到Q2,如上所示 ,请注意以下备注: 消息输入时间并不意味着消息将在 同时。它将进入队列,但实际发送时间 取决于队列的工作负载及其状态 对于核心3.1, ServiceB
计划的内容排队时间Utc
BrokeredMessage类的属性用于。像这样使用它:
var message=新代理消息(内容)
{
预定排队时间Utc=时间结束
};
queueClient.Send(message);
因此,如果我理解正确,Q1处理器应该读取Q1中的内容和timeToSend
,并将消息排队到Q2,如上所示
,请注意以下备注:
消息输入时间并不意味着消息将在
同时。它将进入队列,但实际发送时间
取决于队列的工作负载及其状态
对于核心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
延迟邮件传递。您能告诉我导致队列工作负载的因素吗?@Skull排队与处理的邮件数量。如果队列中有积压工作,则计划的消息处理将晚于计划时间。我还假设只有在队列中有大量消息时才会发生。