graph立即停止怎么做
runnable生成后,我调用runnable.stream流式打印中,怎么能够安全的立即停止输出,不用sigterm
我看代码,如果想要安全停止 select { case <-ctx.Done(): _ = tm.waitAll() return nil, newGraphRunError(fmt.Errorf("context has been canceled: %w", ctx.Err())) default: } 就要等待taskmanager的任务全部完成后才能停止,我想要立即停止全部任务,不用管完成与否,这个怎么做呢?
@meguminnnnnnnnn
「怎么能够安全的立即停止输出」 安全和立即在这里好像是个两难?
golang goroutine 没有外部 kill 的方法,通常来说安全的方法就是 goroutine 内监听外部信号,收到信号后自己优雅退出,这个信号通常就是 context cancel 或者 timeout。现在的做法是定义明确且符合 golang 习惯的。
@dahaogewsh 所有的task manager都监听 context cancel, task manager自己退出。 控制层调用cancel就行
Since you haven't responded for a long time, we have closed this issue. If you still have questions, please reopen it or raise another issue.