3 个版本 (破坏性更新)
0.2.0 | 2021 年 1 月 26 日 |
---|---|
0.1.0 | 2020 年 1 月 8 日 |
0.0.1 | 2019 年 5 月 5 日 |
#350 在 缓存
22KB
466 行
Rust 的简单并发异步获取带过期功能。
shared-expiry-get
是一个包装器,用于访问和缓存远程数据源,并具有一些过期条件。
功能
- 即使多个线程同时尝试访问远程数据,也只检索一次
- 异步支持
- 在过期时更新数据
shared-expiry-get
不
- 在错误时重试
示例用例
- 遵守缓存控制的 http 源的缓存访问
- 可能更新的文件的缓存访问
基本示例
#[derive(Clone)]
struct MyProvider {}
#[derive(Clone)]
struct Payload {}
impl Expiry for Payload {
fn valid(&self) -> bool {
true
}
}
impl Provider<Payload> for MyProvider {
fn update(&self) -> ExpiryFut<Payload> {
future::ok::<Payload, ExpiryGetError>(Payload {}).into_future().boxed()
}
}
async fn main() {
let rs = RemoteStore::new(MyProvider {});
let payload = rs.get().await;
assert!(payload.is_ok());
}
依赖项
~1–1.7MB
~35K SLoC