1

メッセージが頻繁に送信される 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 });
4

1 に答える 1