メッセージが頻繁に送信される Azure Service Bus トピック サブスクリプションが 1 つあります。
以下のコードは、基本的に一度に 1 つのメッセージを受信し、それを処理し、関連する結果をデータベースに保存します。
を設定しようとしまし MaxConcurrentCalls to 10
たが、データベースの動作設計により、データベース接続プールが使い果たされました。
そのため、サブスクリプションから一度に 10 件のメッセージを取得し (N 個のメッセージのバッチで受信)、1 回のデータベース呼び出しで処理したいと考えました。
バッチ API オプションが表示されません。これは可能ですか?
私はMicrosoft.Azure.ServiceBus
ナゲットバージョンを使用してい4.1.1
ます。
_subscriptionClient = new SubscriptionClient(connectionString, topicName, subscriptionName);
// Register the callback method that will be invoked a message of interest is received
_subscriptionClient.RegisterMessageHandler(
async (message, token) =>
{
if (await ProcessMessage(message, token))
{
await _subscriptionClient.CompleteAsync(message.SystemProperties.LockToken);
}
},
new MessageHandlerOptions(ExceptionReceivedHandler) { MaxConcurrentCalls = 1, AutoComplete = false });