22得票2回答
如何在另一个Tokio运行时内创建Tokio运行时,而不出现“无法从运行时内部启动运行时”的错误?

我正在使用rust_bert来进行文本摘要。我需要使用rust_bert::pipelines::summarization::SummarizationModel::new设置模型,该模型从互联网获取。它使用tokio异步执行此操作,而我遇到的问题(我认为)是我正在另一个Tokio运行时中运...

21得票2回答
Rust异步释放

我面临这样一种情况,需要在对象的drop处理程序中运行异步代码。整个应用程序在tokio异步上下文中运行,因此我知道drop处理程序是在活动的tokio Runtime下调用的,但不幸的是,drop本身是同步函数。 理想情况下,我希望找到一个既适用于多线程又适用于当前线程运行时的解决方案,但...

20得票2回答
如何在Tokio的非主线程中运行异步任务?

use std::thread; use tokio::task; // 0.3.4 #[tokio::main] async fn main() { thread::spawn(|| { task::spawn(async { println...

20得票2回答
为什么我在使用futures crate中的block_on时会出现“在Tokio运行时上未运行”而导致恐慌?

我正在使用Elasticsearch博客文章中有关其新的crate的示例代码,但无法按预期使其正常工作。线程出现了panic:thread 'main' panicked at 'not currently running on the Tokio runtime.'。 Tokio运行时是什...

19得票2回答
如何使用Tokio在每个固定时间间隔内触发一个函数?

在 Node.js 中,我可以设置某个事件触发的时间间隔,function intervalFunc() { console.log('whelp, triggered again!'); } setInterval(intervalFunc, 1500); 不过,Tokio的inter...

19得票3回答
如何读取基于Tokio的Hyper请求的整个主体?

我想使用当前 Hyper 的主支(master branch)编写一个服务器,该服务器会保存由 POST 请求传递的消息,并将此消息发送给每个传入的 GET 请求。 我有以下代码,大部分是从 Hyper 的示例目录中复制来的:extern crate futures; extern crat...

18得票2回答
如何优雅地响应SIGTERM信号关闭Tokio运行时?

我有一个main函数,在其中创建了一个Tokio运行时,并在其上运行了两个Future。use tokio; fn main() { let mut runtime = tokio::runtime::Runtime::new().unwrap(); runtime.spa...

17得票1回答
std::sync::Mutex与tokio::sync::Mutex有什么区别?

一个“async”互斥锁与一个“普通”的互斥锁有何不同?我认为这就是tokio的Mutex和普通的std lib Mutex之间的区别。但是,从概念上讲,我不明白互斥锁怎么可能是“async”的。难道不是只有一个东西可以同时使用它吗?

16得票4回答
如何在Tokio中创建一个专门用于CPU密集型工作的线程池?

我有一个基于Tokio运行时的Rust异步服务器。它需要处理一些对延迟敏感的I/O绑定请求和重度CPU绑定请求。 我不想让CPU绑定任务垄断Tokio运行时并使I/O绑定任务饥饿,因此我想将CPU绑定任务卸载到专用的、隔离的线程池中(这里关键是隔离,因此在共享线程池上的spawn_block...

16得票2回答
无法在`Arc`中借用数据作为可变数据

我不知道接下来该做什么。看起来我可能误解了一些东西,或者可能还没有学习一些关键的主题。 use std::sync::Arc; use reqwest::{Error, Response}; // 0.11.4 use tokio::sync::mpsc::{self, Receiver,...