Im Azure Service Bus-Warteschlangenclient verwende ich die Methode ReceiveBatchAsync
, um eine bestimmte Zeit zu warten, bis ein Stapel von Nachrichten asynchron empfangen wird.Wie wird ein CancellationToken mit dem Azure Service Bus Queue-Client verwendet?
var messages = await queueClient.ReceiveBatchAsync(10, TimeSpan.FromSeconds(30));
würde ich eine saubere Abschaltung meiner Anwendung mag, so dass ich die Umsetzung CancellationToken
auf all meinen langlaufende Asynchron Prozesse, aber es scheint nicht eine Überlastung von ReceiveBatchAsync
zu sein, die kündbaren ist.
Mit anderen Worten, würde Ich mag, dies zu tun, aber ich kann nicht:
var messages = await queueClient.ReceiveBatchAsync(10, TimeSpan.FromSeconds(30),
cancellationToken);
Was wäre der beste Weg, um ein CancellationToken
auf eine Aufgabe wie diese anzuwenden, die es nicht bieten direkt? Ich möchte nicht die gesamten 30 Sekunden während des Herunterfahrens warten.
Sehen auf der Oberfläche gut. Aber weißt du, ob es die Zeitüberschreitung tatsächlich unterbricht? Ich muss es versuchen und sehen. –
@MattJohnson, ich weiß es nicht genau, da ich 'ReceiveBatchAsync' noch nicht verwendet habe. – Noseratio
Wenn dies nicht der Fall ist, können Sie Ihr 'cancellationToken' immer mit einem Timeout' CancellationToken' über 'CancellationTokenSource' kombinieren, anstatt ein Timeout im Aufruf von' QueueClient.ReceiveBytesAsync' zu verwenden. –