@@ -124,24 +124,32 @@ internal static async Task AddListenerAsync(ConnectionMultiplexer multiplexer, A
124124 try
125125 {
126126 var sub = multiplexer . GetSubscriber ( ) ;
127- if ( sub == null )
127+ // ReSharper disable once ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract
128+ if ( sub is null )
128129 {
129130 log ? . Invoke ( "Failed to GetSubscriber for AzureRedisEvents" ) ;
130131 return ;
131132 }
132133
133- await sub . SubscribeAsync ( RedisChannel . Literal ( PubSubChannelName ) , async ( _ , message ) =>
134+ await sub . SubscribeAsync ( RedisChannel . Literal ( PubSubChannelName ) , ( _ , message ) =>
134135 {
135- var newMessage = new AzureMaintenanceEvent ( message ! ) ;
136- newMessage . NotifyMultiplexer ( multiplexer ) ;
136+ try
137+ {
138+ var newMessage = new AzureMaintenanceEvent ( message ! ) ;
139+ newMessage . NotifyMultiplexer ( multiplexer ) ;
137140
138- switch ( newMessage . NotificationType )
141+ switch ( newMessage . NotificationType )
142+ {
143+ case AzureNotificationType . NodeMaintenanceEnded :
144+ case AzureNotificationType . NodeMaintenanceFailoverComplete :
145+ case AzureNotificationType . NodeMaintenanceScaleComplete :
146+ multiplexer . ReconfigureAsync ( $ "Azure Event: { newMessage . NotificationType . ToString ( ) } ") . RedisFireAndForget ( ) ;
147+ break ;
148+ }
149+ }
150+ catch ( Exception e )
139151 {
140- case AzureNotificationType . NodeMaintenanceEnded :
141- case AzureNotificationType . NodeMaintenanceFailoverComplete :
142- case AzureNotificationType . NodeMaintenanceScaleComplete :
143- await multiplexer . ReconfigureAsync ( $ "Azure Event: { newMessage . NotificationType } ") . ForAwait ( ) ;
144- break ;
152+ log ? . Invoke ( $ "Encountered exception: { e } ") ;
145153 }
146154 } ) . ForAwait ( ) ;
147155 }
0 commit comments