@@ -436,27 +436,29 @@ where
436
436
} )
437
437
} ;
438
438
439
- let task_quorum_listener = match opts. pythnet . quorum_ws_addr {
440
- Some ( pythnet_quorum_ws_addr) => {
441
- let store = state. clone ( ) ;
442
- let mut exit = crate :: EXIT . subscribe ( ) ;
443
- tokio:: spawn ( async move {
444
- loop {
445
- let current_time = Instant :: now ( ) ;
446
- tokio:: select! {
447
- _ = exit. changed( ) => break ,
448
- Err ( err) = run_quorom_listener( store. clone( ) , pythnet_quorum_ws_addr. clone( ) ) => {
449
- tracing:: error!( error = ?err, "Error in Pythnet quorum network listener." ) ;
450
- if current_time. elapsed( ) < Duration :: from_secs( 30 ) {
451
- tracing:: error!( "Pythnet quorum listener restarting too quickly. Sleep 1s." ) ;
452
- tokio:: time:: sleep( Duration :: from_secs( 1 ) ) . await ;
439
+ let task_quorum_listeners = match opts. pythnet . quorum_ws_addrs {
440
+ Some ( pythnet_quorum_ws_addrs) => tokio:: spawn ( async move {
441
+ pythnet_quorum_ws_addrs. into_iter ( ) . for_each ( |pythnet_quorum_ws_addr| {
442
+ let store = state. clone ( ) ;
443
+ let mut exit = crate :: EXIT . subscribe ( ) ;
444
+ tokio:: spawn ( async move {
445
+ loop {
446
+ let current_time = Instant :: now ( ) ;
447
+ tokio:: select! {
448
+ _ = exit. changed( ) => break ,
449
+ Err ( err) = run_quorom_listener( store. clone( ) , pythnet_quorum_ws_addr. clone( ) ) => {
450
+ tracing:: error!( ws_addr = ?pythnet_quorum_ws_addr, error = ?err, "Error in Pythnet quorum network listener." ) ;
451
+ if current_time. elapsed( ) < Duration :: from_secs( 30 ) {
452
+ tracing:: error!( "Pythnet quorum listener restarting too quickly. Sleep 1s." ) ;
453
+ tokio:: time:: sleep( Duration :: from_secs( 1 ) ) . await ;
454
+ }
455
+ }
453
456
}
454
457
}
455
- }
456
- }
457
- tracing:: info!( "Shutting down Pythnet quorum listener..." ) ;
458
- } )
459
- }
458
+ tracing:: info!( "Shutting down Pythnet quorum listener..." ) ;
459
+ } ) ;
460
+ } ) ;
461
+ } ) ,
460
462
None => tokio:: spawn ( async {
461
463
tracing:: warn!(
462
464
"Pythnet quorum websocket address not provided, skipping quorum listener."
@@ -468,7 +470,7 @@ where
468
470
task_listener,
469
471
task_guardian_watcher,
470
472
task_price_feeds_metadata_updater,
471
- task_quorum_listener ,
473
+ task_quorum_listeners ,
472
474
) ;
473
475
Ok ( ( ) )
474
476
}
0 commit comments