【发布时间】:2015-06-24 16:06:49
【问题描述】:
由于 golang 在单独的 goroutine 中处理传入的请求,我不清楚哪些类型的任务应该推迟到消息队列处理,例如NSQ 消费者,应该在 http 请求 goroutine 中处理。
【问题讨论】:
-
请改写为具体问题
-
@krait 问题改写
标签: http go message-queue nsq
由于 golang 在单独的 goroutine 中处理传入的请求,我不清楚哪些类型的任务应该推迟到消息队列处理,例如NSQ 消费者,应该在 http 请求 goroutine 中处理。
【问题讨论】:
标签: http go message-queue nsq
由于net/http 包运行每个请求,您无需担心阻塞请求goroutine。您应该问自己的真正问题是“我是否需要在向客户返回响应之前执行此操作,还是可以推迟到以后”。一般来说,如果我需要从数据库中获取一个响应,这个响应会阻塞请求 goroutine,那没关系。如果我现在可以返回响应并将消息放入队列中以供稍后处理,那也可以。
由于 request goroutine 的存在成本很小,而且它与其他请求是隔离的,所以你真的不需要太担心它。做对客户有意义的事情。
【讨论】: