如何在 Elixir 运行时关闭百老汇?
How to shutdown Broadway during runtime in Elixir?
我正在使用 Broadway with BroadwayKafka 作为制作人,鉴于我的用例,我必须在运行时启动和停止 Broadway。
在运行时启动 Broadway 已经没有问题了。然而,我很难找到一种优雅地关闭百老汇流程的方法。 Broadway 模块本身不提供停止进程的功能(据我所知),因此,我目前通过 Process.exit(broadway_pid, :kill)
手动终止进程。这当然有效,但可能不是关闭百老汇的预期方式。
什么是关闭百老汇最干净的方式,而不是残忍地杀死百老汇进程?
Broadway
delegates to Broadway.Topology
which is apparently an old good GenServer
, so you might GenServer.stop/3
等于
GenServer.stop(Broadway.Topology, :normal)
这将完成所有 OTP 正常关闭程序(回调等)
我正在使用 Broadway with BroadwayKafka 作为制作人,鉴于我的用例,我必须在运行时启动和停止 Broadway。
在运行时启动 Broadway 已经没有问题了。然而,我很难找到一种优雅地关闭百老汇流程的方法。 Broadway 模块本身不提供停止进程的功能(据我所知),因此,我目前通过 Process.exit(broadway_pid, :kill)
手动终止进程。这当然有效,但可能不是关闭百老汇的预期方式。
什么是关闭百老汇最干净的方式,而不是残忍地杀死百老汇进程?
Broadway
delegates to Broadway.Topology
which is apparently an old good GenServer
, so you might GenServer.stop/3
等于
GenServer.stop(Broadway.Topology, :normal)
这将完成所有 OTP 正常关闭程序(回调等)