我编写了一个 API 来进行数据库调用并执行一些业务逻辑。我正在调用一个必须在后台执行某些操作的 goroutine。由于 API 调用不应等待此后台任务完成,因此我在调用 goroutine 后立即返回 200 OK(让我们假设后台任务永远不会给出任何错误。)
我读到,一旦 goroutine 完成其任务,goroutine 将被终止。这种一劳永逸的方式是否能避免 goroutine 泄漏?Goroutine 在执行任务后是否会终止并清理?
func DefaultHandler(w http.ResponseWriter, r *http.Request) {
// Some DB calls
// Some business logics
go func() {
// some Task taking 5 sec
}()
w.WriteHeader(http.StatusOK)
}
Run Code Online (Sandbox Code Playgroud)