eino icon indicating copy to clipboard operation
eino copied to clipboard

graph立即停止怎么做

Open dahaogewsh opened this issue 7 months ago • 3 comments

runnable生成后,我调用runnable.stream流式打印中,怎么能够安全的立即停止输出,不用sigterm

dahaogewsh avatar May 19 '25 12:05 dahaogewsh

我看代码,如果想要安全停止 select { case <-ctx.Done(): _ = tm.waitAll() return nil, newGraphRunError(fmt.Errorf("context has been canceled: %w", ctx.Err())) default: } 就要等待taskmanager的任务全部完成后才能停止,我想要立即停止全部任务,不用管完成与否,这个怎么做呢?

dahaogewsh avatar May 19 '25 12:05 dahaogewsh

@meguminnnnnnnnn

dahaogewsh avatar May 19 '25 12:05 dahaogewsh

「怎么能够安全的立即停止输出」 安全和立即在这里好像是个两难?

golang goroutine 没有外部 kill 的方法,通常来说安全的方法就是 goroutine 内监听外部信号,收到信号后自己优雅退出,这个信号通常就是 context cancel 或者 timeout。现在的做法是定义明确且符合 golang 习惯的。

meguminnnnnnnnn avatar May 19 '25 13:05 meguminnnnnnnnn

@dahaogewsh 所有的task manager都监听 context cancel, task manager自己退出。 控制层调用cancel就行

dangerous1990 avatar Jun 25 '25 07:06 dangerous1990

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.

mrh997 avatar Jul 10 '25 07:07 mrh997