@@ -56,7 +56,8 @@ public static async Task NoStrategy_TestAsync()
5656
5757 public static async Task Retry_ExecThree_TestAsync ( )
5858 {
59- var builder = new ResiliencePipelineBuilder ( ) . ConfigureTelemetry ( GetTelemetry ( ) )
59+ var options = GetTelemetry ( ) ;
60+ var builder = new ResiliencePipelineBuilder ( ) . ConfigureTelemetry ( options )
6061 . AddRetry (
6162 new RetryStrategyOptions
6263 {
@@ -91,6 +92,46 @@ public static async Task Retry_ExecThree_TestAsync()
9192 Console . WriteLine ( result ) ;
9293 }
9394
95+ public static async Task Retry_UseSamePipeline_TestAsync ( )
96+ {
97+ var builder = new ResiliencePipelineBuilder ( ) . ConfigureTelemetry ( GetTelemetry ( ) . LoggerFactory )
98+ . AddRetry (
99+ new RetryStrategyOptions
100+ {
101+ Delay = TimeSpan . FromSeconds ( 1 ) ,
102+ MaxRetryAttempts = 5 ,
103+ ShouldHandle = ( args ) =>
104+ {
105+ Console . WriteLine ( args . AttemptNumber ) ;
106+ return ValueTask . FromResult ( args . AttemptNumber >= 0 ) ;
107+ }
108+ } ) ;
109+
110+ var pipeline = builder . Build ( ) ;
111+
112+ using var client = GetClient ( ) ;
113+
114+ var t1 = pipeline . ExecuteAsync (
115+ async ( token ) =>
116+ {
117+ var r = await client . GetAsync ( GetUri ( "/weatherforecast/" ) , token ) ;
118+ return r ;
119+ } ,
120+ cancellationToken : default ) ;
121+
122+ var t2 = pipeline . ExecuteAsync (
123+ async ( token ) =>
124+ {
125+ var r = await client . GetAsync ( GetUri ( "/weatherforecast/" ) , token ) ;
126+ return r ;
127+ } ,
128+ cancellationToken : default ) ;
129+
130+ var result = await Task . WhenAll ( t1 . AsTask ( ) , t2 . AsTask ( ) ) ;
131+
132+ Console . WriteLine ( result [ 0 ] ) ;
133+ }
134+
94135 #endregion
95136
96137}
0 commit comments