我以为我找到了一种简单的方法来立即返回 http 响应,然后在后台做一些工作而不会阻塞。但是,这不起作用。
func MyHandler(w http.ResponseWriter, r *http.Request) {
//handle form values
go doSomeBackgroundWork() // this will take 2 or 3 seconds
w.WriteHeader(http.StatusOK)
}
它第一次工作——立即返回响应并开始后台工作。但是,任何进一步的请求都会挂起,直到后台 goroutine 完成。有没有更好的方法来做到这一点,它不涉及设置消息队列和单独的后台进程。
慕沐林林
相关分类