api协程死循环如何释放 可以设置api协程超时时间吗

来源:1-8 辅导 + 案例分析 + 答疑

慕尼黑2207807

2021-06-10 15:23:40

问一下 如果有一种场景,比如写业务逻辑的时候,认为数据库的某个字段一定不可能为某个值,但是因为异常原因导致数据库出现了这个值,从而导致某几个api接口某些情况下变成死循环,那么这个api对应的协程会一直在存在吧,占用运行资源,如何才能发现像这种异常的协程,而且,有没有什么比如设置每个api协程的超时时间的这样的保底方案呀?

写回答

1回答

Xargin

2021-06-10

协程本身的超时不好控制,目前只能通过 ctx,还需要对方配合才行


如果有死循环的话,线上应该会有 CPU 飚升的异常出现的,监控应该能发现


去线上用 perf top 可以看到具体 CPU 使用很高的代码位置,定位应该不难

0

Go高级工程师实战营

慕课网与 GoCN 社区官方联手打造,定义行业Go高级人才培养标准,4个月,快速晋升为P6+/D7级高级人才。

458 学习 · 266 问题

查看课程