由于 golang 在单独的 goroutines 中处理传入的请求,我不清楚哪些类型的任务应该推迟由消息队列(例如 NSQ 消费者)处理,哪些类型的任务应该在 http 请求 goroutine 中处理。
1 回答
神不在的星期二
TA贡献1963条经验 获得超6个赞
由于net/http
包运行每个请求,因此您无需担心阻塞请求 goroutine。您应该问自己的真正问题是“我是否需要在向客户返回响应之前执行此操作,还是可以推迟到稍后”。通常,如果我需要从数据库中获取数据以提供会阻止请求 goroutine 的响应,那没关系。如果我现在可以返回响应并将消息放在队列中以便稍后执行操作,那也可以。
由于 request goroutine 的存在成本很低,而且它与其他请求是隔离的,所以你真的不需要那么担心。做对客户有意义的事情。
- 1 回答
- 0 关注
- 201 浏览
添加回答
举报
0/150
提交
取消