我有一個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