4 个版本
0.1.3 | 2021 年 3 月 22 日 |
---|---|
0.1.2 | 2021 年 3 月 22 日 |
0.1.1 | 2021 年 3 月 22 日 |
0.1.0 | 2021 年 3 月 22 日 |
#1880 in 异步
20KB
367 代码行
async_dataloader
基于 DataLoader 模式,使用 async/await 避免使用 N+1 查询的强大工具。
data_loader 将单个 "poll" 期间发生的加载批量处理 - 无需人工延迟。
设计灵感来自 https://github.com/exAspArk/batch-loader 和 https://github.com/graphql/dataloader
lib.rs
:
基于 DataLoader 模式,使用 async/await 避免使用 N+1 查询的强大工具。
data_loader 将单个 "poll" 期间发生的加载批量处理,无需人工延迟。
设计灵感来自 https://github.com/exAspArk/batch-loader 和 https://github.com/graphql/dataloader
用法
use async_dataloader::{def_batch_loader, batched};
def_batch_loader! {
pub async fn loader(inputs: u64) -> String {
inputs.map(|input| {
input.to_string()
})
}
}
batched(async {
assert_eq!(*loader(1).await, "1".to_owned());
}).await
依赖关系
~1MB
~16K SLoC