为了账号安全,请及时绑定邮箱和手机立即绑定

所有独立的任务都应该在 http 请求 goroutine 之外处理吗?

所有独立的任务都应该在 http 请求 goroutine 之外处理吗?

Go
子衿沉夜 2021-09-27 21:30:34
由于 golang 在单独的 goroutines 中处理传入的请求,我不清楚哪些类型的任务应该推迟由消息队列(例如 NSQ 消费者)处理,哪些类型的任务应该在 http 请求 goroutine 中处理。
查看完整描述

1 回答

?
神不在的星期二

TA贡献1963条经验 获得超6个赞

由于net/http包运行每个请求,因此您无需担心阻塞请求 goroutine。您应该问自己的真正问题是“我是否需要在向客户返回响应之前执行此操作,还是可以推迟到稍后”。通常,如果我需要从数据库中获取数据以提供会阻止请求 goroutine 的响应,那没关系。如果我现在可以返回响应并将消息放在队列中以便稍后执行操作,那也可以。

由于 request goroutine 的存在成本很低,而且它与其他请求是隔离的,所以你真的不需要那么担心。做对客户有意义的事情。


查看完整回答
反对 回复 2021-09-27
  • 1 回答
  • 0 关注
  • 201 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信