假设我有一个像这样的 http 处理程序:
func ReallyLongFunction(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello World!")
// run code that takes a long time here
// Executing dd command with cmd.Exec..., etc.
})
如果用户刷新页面或以其他方式终止请求而不运行后续代码,有没有办法可以中断此功能,我该如何做?
我尝试这样做:
notify := r.Context().Done()
go func() {
<-notify
println("Client closed the connection")
s.downloadCleanup()
return
}()
但每当我中断它之后的代码仍然会运行。
侃侃尔雅
慕莱坞森
相关分类