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

由于 golang 在单独的 goroutines 中处理传入的请求,我不清楚哪些类型的任务应该推迟由消息队列(例如 NSQ 消费者)处理,哪些类型的任务应该在 http 请求 goroutine 中处理。


子衿沉夜
浏览 202回答 1
1回答

神不在的星期二

由于net/http包运行每个请求,因此您无需担心阻塞请求 goroutine。您应该问自己的真正问题是“我是否需要在向客户返回响应之前执行此操作,还是可以推迟到稍后”。通常,如果我需要从数据库中获取数据以提供会阻止请求 goroutine 的响应,那没关系。如果我现在可以返回响应并将消息放在队列中以便稍后执行操作,那也可以。由于 request goroutine 的存在成本很低,而且它与其他请求是隔离的,所以你真的不需要那么担心。做对客户有意义的事情。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go