@@ -20,7 +20,7 @@ public class RabbitMQQuery : BrokerThroughputQuery
2020{
2121 readonly ILogger < RabbitMQQuery > logger ;
2222 readonly TimeProvider timeProvider ;
23- readonly ManagementClient managementClient ;
23+ readonly Lazy < ManagementClient > managementClient ;
2424
2525 readonly ResiliencePipeline pipeline = new ResiliencePipelineBuilder ( )
2626 . AddRetry ( new RetryStrategyOptions ( ) ) // Add retry using the default options
@@ -34,7 +34,7 @@ public RabbitMQQuery(ILogger<RabbitMQQuery> logger, TimeProvider timeProvider, I
3434
3535 if ( transportCustomization is IManagementClientProvider provider )
3636 {
37- managementClient = provider . ManagementClient ;
37+ managementClient = provider . GetManagementClient ( ) ;
3838 }
3939 else
4040 {
@@ -63,7 +63,7 @@ void CheckLegacySettings(ReadOnlyDictionary<string, string> settings, string key
6363 public override async IAsyncEnumerable < QueueThroughput > GetThroughputPerDay ( IBrokerQueue brokerQueue , DateOnly startDate , [ EnumeratorCancellation ] CancellationToken cancellationToken = default )
6464 {
6565 var queue = ( RabbitMQBrokerQueueDetails ) brokerQueue ;
66- var response = await pipeline . ExecuteAsync ( async token => await managementClient . GetQueue ( queue . QueueName , token ) , cancellationToken ) ;
66+ var response = await pipeline . ExecuteAsync ( async token => await managementClient . Value . GetQueue ( queue . QueueName , token ) , cancellationToken ) ;
6767
6868 if ( response . Value is null )
6969 {
@@ -79,7 +79,7 @@ public override async IAsyncEnumerable<QueueThroughput> GetThroughputPerDay(IBro
7979 {
8080 await Task . Delay ( TimeSpan . FromMinutes ( 15 ) , timeProvider , cancellationToken ) ;
8181
82- response = await pipeline . ExecuteAsync ( async token => await managementClient . GetQueue ( queue . QueueName , token ) , cancellationToken ) ;
82+ response = await pipeline . ExecuteAsync ( async token => await managementClient . Value . GetQueue ( queue . QueueName , token ) , cancellationToken ) ;
8383
8484 if ( response . Value is null )
8585 {
@@ -99,7 +99,7 @@ public override async IAsyncEnumerable<QueueThroughput> GetThroughputPerDay(IBro
9999
100100 async Task GetRabbitDetails ( CancellationToken cancellationToken )
101101 {
102- var response = await pipeline . ExecuteAsync ( async async => await managementClient . GetOverview ( cancellationToken ) , cancellationToken ) ;
102+ var response = await pipeline . ExecuteAsync ( async async => await managementClient . Value . GetOverview ( cancellationToken ) , cancellationToken ) ;
103103
104104 ValidateResponse ( response ) ;
105105
@@ -160,7 +160,7 @@ async Task AddAdditionalQueueDetails(RabbitMQBrokerQueueDetails brokerQueue, Can
160160 {
161161 try
162162 {
163- var response = await pipeline . ExecuteAsync ( async token => await managementClient . GetBindingsForQueue ( brokerQueue . QueueName , token ) , cancellationToken ) ;
163+ var response = await pipeline . ExecuteAsync ( async token => await managementClient . Value . GetBindingsForQueue ( brokerQueue . QueueName , token ) , cancellationToken ) ;
164164
165165 // Check if conventional binding is found
166166 if ( response . Value . Any ( binding => binding ? . Source == brokerQueue . QueueName
@@ -179,7 +179,7 @@ async Task AddAdditionalQueueDetails(RabbitMQBrokerQueueDetails brokerQueue, Can
179179
180180 try
181181 {
182- var response = await pipeline . ExecuteAsync ( async token => await managementClient . GetBindingsForExchange ( brokerQueue . QueueName , token ) , cancellationToken ) ;
182+ var response = await pipeline . ExecuteAsync ( async token => await managementClient . Value . GetBindingsForExchange ( brokerQueue . QueueName , token ) , cancellationToken ) ;
183183
184184 // Check if delayed binding is found
185185 if ( response . Value . Any ( binding => binding ? . Source is "nsb.v2.delay-delivery" or "nsb.delay-delivery"
@@ -198,7 +198,7 @@ async Task AddAdditionalQueueDetails(RabbitMQBrokerQueueDetails brokerQueue, Can
198198
199199 internal async Task < ( List < RabbitMQBrokerQueueDetails > ? , bool morePages ) > GetPage ( int page , CancellationToken cancellationToken )
200200 {
201- var ( StatusCode , Reason , Value , MorePages ) = await pipeline . ExecuteAsync ( async token => await managementClient . GetQueues ( page , 500 , token ) , cancellationToken ) ;
201+ var ( StatusCode , Reason , Value , MorePages ) = await pipeline . ExecuteAsync ( async token => await managementClient . Value . GetQueues ( page , 500 , token ) , cancellationToken ) ;
202202
203203 ValidateResponse ( ( StatusCode , Reason , Value ) ) ;
204204
@@ -227,7 +227,7 @@ static List<RabbitMQBrokerQueueDetails> MaterializeQueueDetails(List<Queue> item
227227 {
228228 try
229229 {
230- var ( statusCode , reason , value ) = await managementClient . GetOverview ( cancellationToken ) ;
230+ var ( statusCode , reason , value ) = await managementClient . Value . GetOverview ( cancellationToken ) ;
231231
232232 if ( value is not null )
233233 {
0 commit comments