上班突然爆出一个Bug,业务执行失败,翻遍了elk都没找到错误在哪。
最后发现有些查询数据库的地方,没有判断err,随后加上。
err里面是context cancel!
oh my god,这不是父协程死掉了嘛,然后把孩子都cancel了。
继续定位。

原来函数用了Grpc进行调用,Grpc会立即返回消息,所以函数的主协程也就关掉了,上下文就没有了。

解决办法:
子协用context.Background(),作为协程根就好了。
如果有什么参数需要上下文传的话,可以用withvalue这个函数,在context里面有封装好。

Go context cancel!!!相关推荐

  1. Go 学习笔记(68)— goroutine 并发控制神器 Context

    1. 什么是 Context 一个任务会有很多个 goroutine 协作完成,一次 HTTP 请求也会触发很多个 goroutine 的启动,而这些 goroutine 有可能会启动更多的子 gor ...

  2. golang库context学习

    context库 context最早的背景说明还是来源于官方的 博客,说明如下: 在Go服务器中,每个传入请求都在其自己的goroutine中进行处理. 请求处理程序通常会启动其他goroutine来 ...

  3. 此上下文中不允许函数定义。_深度好文 | 你知道Go中的 context 是怎么实现的吗?...

    Go语言中文网,致力于每日分享编码知识,欢迎关注我,会有意想不到的收获! Go 语言的 context 包短小精悍,非常适合新手学习.不论是它的源码还是实际使用,都值得投入时间去学习. 这篇文章依然想 ...

  4. Go 语言编程 — Context 上下文

    目录 文章目录 目录 Goroutine 的控制方式 WaitGroup Channel + Select 通知 Context Context Context 的接口 Context 的继承衍生 使 ...

  5. Go 语言并发模型 Context

    引言 在之前的博客中,讲到过 Go 语言的优势之一是支持并发,而且也谈到过,使用 WaitGroup 控制多个 goroutine 实现并发. 本篇博客将谈一下 Go 语言的另一种并发模型-- Con ...

  6. golang context 父子任务同步取消信号 协程调度 简介

    目录 前言 为什么需要context context是什么 context的使用 总结 前言 这篇文章将介绍Golang并发编程中常用到一种编程模式:context.本文将从为什么需要context出 ...

  7. Golang Context包的使用

    context包主要用来控制goroutings间的并发控制.使用场景包括通知子协程退出这种. 相关接口和示例: func Background() Context Background return ...

  8. 理解GO CONTEXT机制

    1 什么是Context 最近在公司分析gRPC源码,proto文件生成的代码,接口函数第一个参数统一是ctx context.Context接口,公司不少同事都不了解这样设计的出发点是什么,其实我也 ...

  9. 并发安全Context包的使用

    前言–为什么需要Context Golang context是Golang应用开发常用的并发控制技术,它与WaitGroup最大的不同点是context对于派生goroutine有更强的控制力,它可以 ...

最新文章

  1. php输出带的字符串吗,php输出含有“#”字符串的方法
  2. canvas三角函数模拟水波效果
  3. 比特币现金正走在被广泛应用的路上
  4. 论面向组合子程序设计方法 之 南无阿弥陀佛
  5. kafka0.8消费者实例
  6. android状态机是线程么,Java中的线程状态机 - java
  7. Linux系统管理(10)——Centos8 重启网络服务 网络相关命令
  8. Spring Boot 中的线程池,这也太好用了!
  9. 解析域名地址并生成win路由增强版
  10. 9、网友问答----有关清零问题------------------labview宝典
  11. Android ViewModel与LiveData组件组合使用详解
  12. HDU 6069 Counting Divisors
  13. 基于PHP的酒店住宿管理系统 毕业设计源码261455
  14. Windows11无法打开 WindowsTerminal 图形化设置界面
  15. 关于CultureInfo
  16. AMD天下!10款超性价比S754闪龙主板
  17. GBase 8s灾备集群HAC (四) 异地灾备RSS
  18. 订单中心,究竟是分还是合?
  19. Dijkstra-POJ-2387-Til the Cows Come Home
  20. LTE RACH

热门文章

  1. IT十八掌Java基础 网络编程
  2. ​360搜索下拉词框跟相关搜索算法原理是什么?如何做360下拉推广?​
  3. rEFInd去掉不必要的启动项
  4. 使用 VMware 装一个 fedora 虚拟机并设置共享文件夹的平凡之路…
  5. golang redirect时设置cookie
  6. css绝对定位与相对定位结合使用
  7. 【python面向对象】继承与多态(二)
  8. matlab 半正定规划,半定规划算法(Semi-Definite Programming Algorithm).ppt
  9. Oracle-SQL
  10. 2020-1-19 2.港股打新、REITs和分拆