请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

KV数据生成问题

老师这段代码没明白`
//创建协程生成数据
go func() {
for {
kv.Put(context.TODO() , “/cron/bin/job2” , “123456”)

		kv.Delete(context.TODO() , "/cron/bin/job2")

		time.Sleep(1 * time.Second)
	}
}()

//获取KV数据
getResp , err := kv.Get(context.TODO() , "/cron/bin/job2")
if err != nil {
	fmt.Println(err)
	return
}

// 现在key是存在的
if len(getResp.Kvs) != 0 {
	fmt.Println("当前值:", string(getResp.Kvs[0].Value))
}`
为什么可以获取到值   难道get比delete先执行

正在回答 回答被采纳积分+3

2回答

牙小木 2020-04-04 17:42:34
go func() {
   for {
      putResponse, err = kv.Put(context.TODO(), "/cron/job/10", "10")
      fmt.Println("put的revision是: ", putResponse.Header.Revision)
      putResponse, err = kv.Put(context.TODO(), "/cron/job/10", "99")
      fmt.Println("第二次put的revision是: ", putResponse.Header.Revision)
      time.Sleep(1 * time.Microsecond)
      delResponse, err = kv.Delete(context.TODO(), "/cron/job/10")
      fmt.Println("del 的revision  是: ", delResponse.Header.Revision)
      time.Sleep(1 * time.Second)

   }
}()

代码语言居然没有go

0 回复 有任何疑惑可以回复我~
小鱼儿老师 2019-10-28 10:27:39

应该是运气问题,可能发生时序是:Put -> Get -> Delete。

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信