我正在尝试创建一个系统,通过该系统,我的应用程序可以从Redis PubSub通道接收流数据并对其进行处理.我正在使用的Redis驱动程序,以及我见过的Rust的所有其他Redis驱动程序,使用阻塞操作从通道获取数据,该数据仅在接收数据时返回值:
let msg = match pubsub.get_message() {
Ok(m) => m,
Err(_) => panic!("Could not get message from pubsub!")
};
let payload: String = match msg.get_payload() {
Ok(s) => s,
Err(_) => panic!("Could not convert redis message to string!")
};
Run Code Online (Sandbox Code Playgroud)
我想在将来使用futures-rs库包装这个阻塞函数调用,这样我就可以在等待输入时在我的应用程序中执行其他任务.
我阅读了期货教程并尝试创建一个Stream可以在PubSub收到数据时发出信号,但我无法弄清楚如何这样做.
如何为阻止功能创建schedule和运行?pollpubsub.get_message()