72得票1回答
如何测试使用Tokio的异步函数?

我有一个需要测试的异步函数。这个函数使用一个mongodb::Database对象来运行,所以我在setup()函数中初始化连接,并使用tokio_test::block_on()将await表达式包装起来。 #[cfg(test)] mod tests { use mongodb:...

7得票1回答
调用两个异步接收器的select函数,我会错过某个值吗?

如果一个任务发送到a,而另一个任务(同时)发送到b,那么在使用tokio::select!选择器时,是否会通过取消剩余的未来任务而丢失其中一个值?或者保证在下一个循环迭代中收到该值? use tokio::sync::mpsc::Receiver; async fn foo(mut a: ...

12得票1回答
什么是在tokio任务中传播恐慌的推荐方式?

现在我的panic被忽略了。在我的使用场景中,我希望它能崩溃整个程序,并打印堆栈跟踪信息。应该如何配置?

15得票1回答
如何使用Tokio远程关闭正在运行的任务

我有一个UDP套接字在接收数据。 pub async fn start() -> Result<(), std::io::Error> { loop { let mut data = vec![0; 1024]; socket.r...

38得票5回答
为什么我在代码中加了#[tokio::main],但仍然出现错误提示"there is no reactor running, must be called from the context of Tokio runtime"?

我正在遵循mdns Rust文档,并复制了示例代码,但它抛出了以下错误:thread 'main' panicked at 'there is no reactor running, must be called from the context of Tokio runtime' 这是我拥有...

7得票1回答
有没有办法创建一个异步流生成器,它可以产生重复调用函数的结果?

我希望建立一个程序,收集天气更新信息并将其表示为一条流。我想在无限循环中调用get_weather()方法,在结束和开始之间有60秒的延迟。 简化后的代码如下: async fn get_weather() -> Weather { /* ... */ } fn get_weath...

7得票2回答
Tokio可以理解为类似于JavaScript的事件循环,或者像它一样使用吗?

我不确定 tokio 是否类似于JavaScript中的事件循环,也是一种非阻塞运行时,或者它是否可以用类似的方式工作。在我的理解中,tokio是一个用于Rust中的futures的运行时。因此,它必须实现某种用户级线程或任务,这可以通过事件循环(至少部分地)来调度新任务。 让我们看一下以下...

8得票2回答
如何在Rust中使用hyper、tokio和futures设置HTTP请求的超时时间?

如何在使用异步Hyper(>=0.11)时为HTTP请求设置超时时间? 以下为没有超时时间的代码示例: extern crate hyper; extern crate tokio_core; extern crate futures; use futures::Future; u...

7得票1回答
Hyper中的共享可变状态

我正在尝试在Hyper Web服务器中创建一个计数器来计算它接收到的请求总数。我使用一个 Arc<Mutex<u64>>来存储计数。然而,我还没有找到合适的 move 和 .clone() 的组合来满足闭包的类型。这里有一些代码可以编译,但会在每次请求时重置计数器: ...

7得票1回答
Tokio错误:即使使用#[tokio::main]和单个版本的Tokio安装,仍然出现“没有正在运行的反应器”。

当运行以下代码时: use futures::executor; ... pub fn store_temporary_password(email: &str, password: &str) -> Result<(), Box<dyn Error>...