在非异步中为 rustr 调用异步函数
Call async function in non-async for rustr
您好,我有一个系统可以从不同来源提取一些数据。直到今天所有的资源都是同步的所以我设计了以下 API:
trait GraphPuller {
pub fn Graph() -> Result<Vec<i64>>
}
struct GitPuller;
Struct TcpPuller;
impl GraphPuller for GitPuller {
pub fn Graph() -> Result<Vec<i64>> {
...
}
}
impl GraphPuller for Tc[Puller {
pub fn Graph() -> Result<Vec<i64>> {
...
}
}
现在我必须为 AWS 实施 Puller。 AWS API 是异步的,所以我必须在非同步系统中调用异步函数。
我应该如何设计特征和 api 以避免出现问题?
最简单的方法是保持特征不变,只阻止 Amazon API 调用。我推荐 pollster::block_on
,因为它只实现了最基本的功能,而不是引入更重量级的 futures
板条箱。
您好,我有一个系统可以从不同来源提取一些数据。直到今天所有的资源都是同步的所以我设计了以下 API:
trait GraphPuller {
pub fn Graph() -> Result<Vec<i64>>
}
struct GitPuller;
Struct TcpPuller;
impl GraphPuller for GitPuller {
pub fn Graph() -> Result<Vec<i64>> {
...
}
}
impl GraphPuller for Tc[Puller {
pub fn Graph() -> Result<Vec<i64>> {
...
}
}
现在我必须为 AWS 实施 Puller。 AWS API 是异步的,所以我必须在非同步系统中调用异步函数。
我应该如何设计特征和 api 以避免出现问题?
最简单的方法是保持特征不变,只阻止 Amazon API 调用。我推荐 pollster::block_on
,因为它只实现了最基本的功能,而不是引入更重量级的 futures
板条箱。