我有一个应该永远持续的异步进程,看起来是这样的:
func asyncForeverTask() {
for {
anyTask()
}
}
func main() {
go asyncForeverTask()
server.run(8080)
}
当某个请求请求到达服务器时,我希望能够停止此for循环.
我知道我需要使用context.WithCancel()
,但我不知道如何整合它才能工作.我知道以下语法:
for {
select {
case <-ctx.Done:
return
case <-otherCh:
// do smh.
}
}
但asyncForeverTask
不是由任何其他CH发出的信号运行的,而是永远运行.我是个菜鸟,任何类型的帮助我都会很感激.