ich versuchen, Nachrichten in Azure-Warteschlangen wie folgt asynchron einzureihen:Asynchron zu Azure Queues veröffentlichen
private async Task EnqueueItemsAsync(IEnumerable<string> messages) {
var tasks = messages.Select(msg => _queue.AddMessageAsync(new CloudQueueMessage(msg),
null, null, null, null));
await Task.WhenAll(tasks);
}
Wenn ich es richtig sagt, das „Start ein Element nach dem anderen Einreihen, ohne sie zu warten, geschrieben werden, halten eine Referenz für jede Aufgabe und dann warten bis alle gepostet werden ".
Dieser Code funktioniert in den meisten Fällen gut, aber für eine große Anzahl von Elementen (5000), es beginnt das Einreihen und dann wirft eine Timeout-Ausnahme (nach ~ 3500 Artikeln Warteschlange gestellt hat).
Ich löste es durch jede mit der nächsten Kann mir jemand erklären, bevor Sie fortfahren, warum geschah ein
private async Task EnqueueItemsAsync(IEnumerable<string> messages) {
foreach (var message in messages) {
await _queue.AddMessageAsync(new CloudQueueMessage(message), null, null, null, null);
}
}
zu beenden wartet das?
Ausnahme:
System.AggregateException
, die viele solche Ausnahmen Wraps:Microsoft.WindowsAzure.Storage.Core.Util.AsyncExtensions.<>c__DisplayClass4.<CreateCallbackVoid>b__3(IAsyncResult ar)
Informationen anfordern RequestID: RequestDate: Statusmessage: < --- ---> (Interne Ausnahme # 1) zu. StorageException: Der Client konnte den Vorgang nicht innerhalb des angegebenen Zeitlimits abschließen. ---> System.TimeoutException: Der Client konnte die Operation innerhalb des angegebenen Zeitlimits nicht beenden. --- Ende der inneren Ausnahmestapelspur --- Microsoft.WindowsAzure.Storage.Core.Executor.Executor.EndExecuteAsync [T] (IAsyncResult Ergebnis) `.
Welche Linie die Ausnahme auslöst? und welche Methode? Notieren Sie die Ausnahme Name, Nachricht und StackTrace –
@SriramSakthivel danke für die Erwähnung, nur aktualisiert mein Beitrag –