【问题标题】:How to shutdown Broadway during runtime in Elixir?如何在 Elixir 运行时关闭百老汇?
【发布时间】:2020-11-27 17:15:10
【问题描述】:

我使用BroadwayBroadwayKafka 作为生产者,并且考虑到我的用例,我必须在运行时启动和停止百老汇。

在运行时启动 Broadway 已经没有问题了。然而,我很难找到一种优雅地关闭百老汇进程的方法。 Broadway 模块本身不提供停止进程的功能(据我所知),因此,我目前通过Process.exit(broadway_pid, :kill) 手动终止进程。这当然可行,但可能不是关闭百老汇的预期方式。

什么是关闭百老汇最干净的方法,而不是残酷地杀死百老汇进程?

【问题讨论】:

标签: elixir broadway


【解决方案1】:

Broadwaydelegates toBroadway.Topology这显然是一个旧的好GenServer,所以你可以GenServer.stop/3它作为

GenServer.stop(Broadway.Topology, :normal)

这将经历所有 OTP 正常关闭过程(回调等)

【讨论】:

  • 您说的完全正确,非常感谢您的快速回复。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-06-21
  • 1970-01-01
  • 1970-01-01
  • 2015-01-13
  • 1970-01-01
  • 1970-01-01
  • 2011-10-08
相关资源
最近更新 更多