请教个context应用场景的问题

visli · · 1173 次点击 · 开始浏览    置顶

我遇到一个**context**应用场景问题,有点疑惑,来向各位先进请教。 我在某个**Redis**操作函数中,要将一系列**Key**的值进行修改。伪代码如下: ``` // 创建一个2秒超时的context ctx, cancel := context.WithTimeout(context.Background(), time.Second * 2) defer cancel() // 获取所有匹配的Keys(数量不定) keys, err := redis.Keys(ctx, "device_*") // ... // 循环,更新Key的值 for _, key := range keys { newValue := getNewValue(key) // 疑惑是下面这几句,假设循环可能有几千或上万次, // 那么下面用到的context(也是设置2秒超时),是每次都创建一个新的?还是另有它法? ctx, cancel := context.WithTimeout(context.Background(), time.Second * 2) defer cancel() _, err = redis.Set(ctx, key, newValue ) // ... } ```

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1173 次点击  
加入收藏 微博
7 回复  |  直到 2022-12-13 14:43:20
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传