@@ -599,7 +599,7 @@ async fn subscribe_kafka_consumer(
599599 topics_prefix : & str ,
600600) {
601601 kafka_consumer
602- . subscribe ( & [ topics_prefix] )
602+ . subscribe ( & [ topics_prefix, & "heartbeat" ] )
603603 . context ( "Failed to subscribe to topics" )
604604 . expect ( "subscribed topic prefix" ) ;
605605
@@ -626,9 +626,11 @@ async fn subscribe_kafka_consumer(
626626 . expect ( "topic channel exists" ) ;
627627
628628 if ( tx. receiver_count ( ) as u32 ) < 1 {
629- // TODO: consumer got the message but it won't be forwarded since no one's listening??
630- // do we want to have something where it replays recent message on connect?
631- log:: error!( target: "kafka" , "No receiver found for topic: {topic}, order message lost!" ) ;
629+ if topic != "heartbeat" {
630+ log:: warn!( target: "kafka" , "No receiver found for topic: {topic}, order message lost!" ) ;
631+ } else {
632+ log:: debug!( target: "kafka" , "Received heartbeat message" ) ;
633+ }
632634 continue ;
633635 }
634636 let payload: & [ u8 ] = message. payload ( ) . context ( "Failed to get payload" ) . unwrap ( ) ;
@@ -728,9 +730,11 @@ async fn subscribe_redis_pubsub(
728730 . expect ( "topic channel exists" ) ;
729731
730732 if ( tx. receiver_count ( ) as u32 ) < 1 {
731- // TODO: consumer got the message but it won't be forwarded since no one's listening??
732- // do we want to have something where it replays recent message on connect?
733- log:: error!( target: "ws" , "No receiver found for topic: {topic}, order message lost!" ) ;
733+ if topic != "heartbeat" {
734+ log:: warn!( target: "ws" , "No receiver found for topic: {topic}, order message lost!" ) ;
735+ } else {
736+ log:: debug!( target: "ws" , "Received heartbeat message" ) ;
737+ }
734738 continue ;
735739 }
736740 let payload: & [ u8 ] = message. get_payload_bytes ( ) ;
@@ -793,8 +797,12 @@ pub async fn start_server() {
793797
794798 // Set up the server with the server params
795799 let subscriptions = DashMap :: new ( ) ;
796- let mut topic_names: Vec < String > = vec ! [ ] ;
800+ let mut topic_names: Vec < String > = vec ! [ "heartbeat" . to_string ( ) ] ;
797801 for market in & perp_market_accounts {
802+ if market. symbol ( ) . contains ( "BET" ) {
803+ log:: info!( "Skipping BET market" ) ;
804+ continue ;
805+ }
798806 let topic = format ! (
799807 "swift_orders_{}_{}" ,
800808 market. market_type( ) ,
@@ -1299,7 +1307,7 @@ mod test {
12991307 let mut ws_conn = WsConnection :: new ( Pubkey :: new_unique ( ) ) ;
13001308 ws_conn. authenticated = true ;
13011309
1302- ws_conn
1310+ let _ = ws_conn
13031311 . spawn_handler ( & mut client_rx, & mut client_tx, Box :: leak ( Box :: default ( ) ) )
13041312 . await ;
13051313
@@ -1330,7 +1338,7 @@ mod test {
13301338 let mut client_rx = vec ! [ ] ;
13311339 let mut client_tx = stream:: iter ( [ Ok ( Message :: Close ( None ) ) ] ) ;
13321340 let ws_conn = WsConnection :: new ( Pubkey :: new_unique ( ) ) ;
1333- ws_conn
1341+ let _ = ws_conn
13341342 . spawn_handler ( & mut client_rx, & mut client_tx, Box :: leak ( Box :: default ( ) ) )
13351343 . await ;
13361344 }
@@ -1344,7 +1352,7 @@ mod test {
13441352 let _ = ws_conn. send_message ( WsMessage :: heartbeat ( ) ) ;
13451353 let _ = ws_conn. send_message ( WsMessage :: heartbeat ( ) ) ;
13461354 let _ = ws_conn. send_message ( WsMessage :: heartbeat ( ) ) ;
1347- ws_conn
1355+ let _ = ws_conn
13481356 . spawn_handler ( & mut client_rx, & mut client_tx, Box :: leak ( Box :: default ( ) ) )
13491357 . await ;
13501358 assert ! ( client_rx. len( ) >= 3 ) ;
0 commit comments