[zeromicro/go-zero]修复mr.MapReduce 在 reducer 中使用两次 writer.Write() 会导致协程泄漏的问题

2024-03-05 360 views
2

修复mr.MapReduce 在 reducer 中使用两次 writer.Write() 会导致协程泄漏的问题

回答

6

fix #957

8

这样修不好,看下 #959 用户误写了两次而不自知

5

@kevwan 嗯嗯,从框架设计上来说,提醒用户用错了,确实比帮助用户隐藏错误要好,学习了☺

但我有个问题,如果第二次调用 writer.Write() 是在某种特定逻辑,在测试环境并没有触发,发布到生产环境由于触发到了二次写入导致服务 panic 了,这样对用户来说好像也不是很友好,因为不是每个人都会去读源码的。不知道有没有更好的方式,既可以提醒用户,又能不直接 panic

3

这个没办法的,只能说明他测试不充分,线上遇到panic因为是请求隔离的,也就是会记录下来,然后改进掉就好了。

5

Duplicate of #959