14 个重大版本发布
0.22.0 | 2023 年 11 月 26 日 |
---|---|
0.20.0 | 2023 年 11 月 10 日 |
0.15.0 | 2023 年 5 月 26 日 |
0.12.0 | 2023 年 1 月 27 日 |
0.9.0 | 2022 年 10 月 27 日 |
#322 在 数据库接口 中
每月 64 次下载
23KB
383 行
dynamodb-lease
用于在 dynamodb 中获取(即 "租约")的分布式锁的客户端。使用 aws-sdk-dynamodb & tokio。
let client = dynamodb_lease::Client::builder()
.table_name("example-leases")
.lease_ttl_seconds(60)
.build_and_check_db(dynamodb_client)
.await?;
// acquire a lease for "important-job-123"
// waits for any other holders to release if necessary
let lease = client.acquire("important-job-123").await?;
// `lease` periodically extends itself in a background tokio task
// until dropped others will not be able to acquire this lease
assert!(client.try_acquire("important-job-123").await?.is_none());
// Dropping the lease will asynchronously release it, so others may acquire it
drop(lease);
请参阅 设计文档 和源代码,了解其底层工作原理。
测试
运行 scripts/init-test.sh
以确保 dynamodb-local 在 8000 上运行。
cargo test
AWS 设置
您可能还需要设置一些 aws 配置,例如。
- 设置
~/.aws/config
[default] region = eu-west-1
- 使用假值设置
~/.aws/credentials
[default] aws_access_key_id=12341234 aws_secret_access_key=12341234
依赖项
~15–26MB
~356K SLoC