diff --git a/src/connection.rs b/src/connection.rs index b1e4210..0ccf42e 100644 --- a/src/connection.rs +++ b/src/connection.rs @@ -180,6 +180,13 @@ impl ConnectionManager { self.pool = Some(pool); } + pub fn set_pool_and_start_reconnect_task(&mut self, pool: Arc) { + self.pool = Some(pool.clone()); + // 将 self 转换为不可变引用以调用 start_reconnect_task + let manager = self.clone(); + manager.start_reconnect_task(); + } + pub fn set_reconnect_tx(&mut self, tx: tokio::sync::mpsc::UnboundedSender) { self.reconnect_tx = Some(tx); } diff --git a/src/main.rs b/src/main.rs index 4665288..66d306d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -46,12 +46,11 @@ async fn main() { Some(ws_manager.clone()), )); connection_manager.set_event_manager(event_manager.clone()); - connection_manager.set_pool(Arc::new(pool.clone())); + connection_manager.set_pool_and_start_reconnect_task(Arc::new(pool.clone())); let connection_manager = Arc::new(connection_manager); - // 启动重连任务 - connection_manager.start_reconnect_task(); + // Connect to all enabled sources concurrently let sources = service::get_all_enabled_sources(&pool)