我有一个JavaScript日志实用程序,可以将请求批量发送到我的服务器,然后将它们转发给队列客户端(Microsoft.ServiceBus.Messaging.QueueClient
)。我想将它们异步发送到ServiceBus,并且仍然按照它们放入我发送的批次中的顺序进行处理。 SendBatchAsync
的文档显示该方法用于“批量”处理。这让我想我可以发送一批请求并将它们作为一个单元处理(即:按顺序)。虽然,看起来这些消息正在乱序处理。我正在使用OnMessage
来接收消息;我不确定这是一个限制还是我错过了什么?Microsoft ServiceBus接收中断消息
我得到异步不保证顺序与其他异步请求,但这是一个单一的请求。我不想在响应javascript客户端之前等待响应,因为我只是试图发送它们,但我仍然需要确保它们保持顺序,因为它们是顺序事件。
这里是我怎么把它们发送到队列:
MyQueueClient.SendBatchAsync(MyListOfBrokerMessages);
然后我处理它们:
ServiceBus.TrackerClient.OnMessage((m) =>
{
try
{
ProcessMessage(m);
}
我没有得到批量处理的点,如果它不处理作为一个批次,除了可能提出一个请求。必须有一些方法来发送批处理,并按顺序处理?
编辑: 我使用Send
代替SendBatchAsync
试过,我已经设置MaxConcurrentCalls
为1,但消息仍然不正常。
去玩弄这一点,并尽快给您:)编码样本。谢谢! – KingOfHypocrites