我正在使用fasthttp
在Go中制作HTTP服务器。当用户访问某条路线时,说/foo
我想启动一个运行时间很长的任务(认为10m +),但是立即响应该请求。即使函数返回或用户终止连接,该长时间运行的任务也应继续在后台运行,直到退出为止。
在Go中最好的方法是什么?
据我所知Goroutines可能不是正确的事情,因为它们只是为了短暂运行异步代码,还是我错了?
答案 0 :(得分:2)
否:goroutine可以持续任意时间(和主程序):mentioned here只需要知道何时终止所述goroutine。
在这种情况下,您将必须检测到用户已终止连接,如“ Close the goroutine reading from a TCP connection without closing connection”。