Tokio任务丢失Waker问题求助:原因及解决方案
任务丢失Waker问题求助

我遇到了大量任务丢失Waker的情况,但无法理解其原因及发生机制。
任务生成位置
loop { tokio::select! { // send final bundle Some(bundle) = bundle_receiver.recv() => { for client in &clients { tokio::spawn( send_bundle(bundle.clone(), client.clone()) ); } }, } }
对应函数
pub async fn send_bundle( bundle: BundleRequest, client: Arc<SignerMiddleware<FlashbotsMiddleware<Arc<Provider<Http>>, Wallet<SigningKey>>, Wallet<SigningKey>>>, ) { match client.inner().send_bundle(&bundle).await { Ok(info) => { debug!("\nBundle Hash: {:?}\nRelay: {:?}", info.bundle_hash, client.inner().relay()); }, Err(info) => { trace!("\nResponse: {:?}\nRelay: {:?}", info, client.inner().relay()); } } }
逻辑很简单,就是生成任务调用API接口。这对我来说是全新的概念,我没有解决思路,尝试添加.await、返回值等方法,但都无法消除该警告。
内容的提问来源于stack exchange,提问作者Arvin Morawej
相关产品推荐
相关产品推荐

