我有N
输入流(队列)和N
相应的连接。调度程序线程扫描传入的请求,根据某些标准对它们进行优先级排序,然后将它们发送到相应的连接上(来自队列中的请求x
继续连接x
)。类似的事情也发生在接收端。
在传统环境中,人们会创建与O_NONBLOCK
. 如果对连接的写入将被阻塞,请将请求留在输入队列中,稍后重新访问队列,这样调度程序线程就不会在一个慢速连接上被阻塞。
等有可能tokio::net::TcpStream
吗?看起来tokio::io::{TryRead, TryWrite}
过去有被删除。
一种选择可能是为每个连接创建一个输出队列,每个输出队列都有一个专用任务。这只是出队并write_all().await
在连接上执行。这会增加一跳,并增加复杂性。让我想知道 Tokio 是否是此应用程序的正确选择。