#缓存 #数据访问 #异步 #数据源

shared-expiry-get

Rust 的简单并发异步获取带过期功能

3 个版本 (破坏性更新)

0.2.0 2021 年 1 月 26 日
0.1.0 2020 年 1 月 8 日
0.0.1 2019 年 5 月 5 日

#350缓存

MIT 许可证

22KB
466

Rust 的简单并发异步获取带过期功能。

Latest Version Docs

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