// 确保函数退出后, 自动续租会停止
defer cancelFunc()
defer lease.Revoke(context.TODO(), leaseId)
…
…
// 如果key不存在
txn.If(clientv3.Compare(clientv3.CreateRevision("/cron/lock/job9"), “=”, 0)).
Then(clientv3.OpPut("/cron/lock/job9", “xxx”, clientv3.WithLease(leaseId))).
Else(clientv3.OpGet("/cron/lock/job9")) // 否则抢锁失败
这段代码,lease.Revoke会将key的CreateRevision变成0吗,平时删除key或者cancelFunc() 这个操作不会将key的CreateRevision变成0的,下一次CreateRevision会再之前创建过的基础上+1
求解答
登录后可查看更多问答,登录/注册