gpt4 book ai didi

multithreading - Web 服务器中长时间运行的任务

转载 作者:IT王子 更新时间:2023-10-29 02:35:34 24 4
gpt4 key购买 nike

我正在使用 fasthttp 在 Go 中创建一个 HTTP 服务器。当用户访问某个路由时,说 /foo 我想开始一个运行时间很长的任务(想想 10m+),但立即响应请求。这个长时间运行的任务应该继续在后台运行,直到它退出,即使函数返回或用户终止连接也是如此。

在 Go 中最好的方法是什么?

据我所知,Goroutines 可能不是正确的选择,因为它们适用于短时间运行的异步代码,或者我对此有误吗?

最佳答案

否:goroutine 可以持续到你想要的时间(和主程序):你只需要知道,如 mentioned here , 何时终止所述 goroutine。

在您的情况下,您必须检测到您的连接已被用户终止,如“Close the goroutine reading from a TCP connection without closing connection ”。

关于multithreading - Web 服务器中长时间运行的任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55095420/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com