go - 如何通过修订删除 etcd 中的密钥
问题描述
我想删除 etcd 中的密钥,而其他人将密钥放入 etcd。所以我想在删除时指定修订。如果密钥版本低于修订版本,则将其删除。否则什么都不做。
// putInfoOp returns a PUT etcd operation for Info.
func putInfoOp(info Info) (clientv3.Op, error) {
value, err := info.toJSON()
if err != nil {
return clientv3.Op{}, err
}
key := KeyAdapter.Encode(info.A, info.B)
return clientv3.OpPut(key, value), nil
}
// deleteInfoOp returns a DELETE etcd operation for info.
func deleteInfoOp(info Info) clientv3.Op {
return clientv3.OpDelete(KeyAdapter.Encode(
info.A, info.B))
}
// my code
func handleinfo(info Info){
putOp, _ := putInfoOp(info)
_, rev, err := etcdutil.DoOpsInOneTxnWithRetry(cli, putOp)
dosomething()
delOp, _ := deleteInfoOp(Info) // how to delete it with rev?
}
解决方案
推荐阅读
- spring - 如何忽略 springframe.sock 中的 SSL 证书
- c - 变量自动返回,函数结束时不直接返回
- c++ - 缓存 QSqlQueryModel 以模仿 OnManualSubmit
- c# - 也许我误解了Entity Framework的更新方法?
- visual-studio-code - 为什么是appsettings。
.json 在 dotnet core webapi 中被忽略 - sed - Sed - 仅用第一次出现的变量替换
- javascript - 当悬停在该行的任何位置时,我可以让 TableRow 列中的图标更改颜色吗?
- python - 从 azure key vault 证书中分离私钥和证书
- android - addInterceptor 拦截 NullPointException。在改造2
- vue.js - vuepress 路由器链接活动样式不起作用