代码之家  ›  专栏  ›  技术社区  ›  Alexey Romanov

二郎:对港口所有人死亡的抵抗力

  •  6
  • Alexey Romanov  · 技术社区  · 15 年前

    当拥有一个生成端口的进程死亡并由主管重新启动时会发生什么?

    1. 有没有办法让旧港口不与它的所有者一起死亡,让新的所有者“接管”?

    2. 如果失败,是否可以确保生成的进程在其端口死亡时终止?

    1 回复  |  直到 15 年前
        1
  •  5
  •   I GIVE CRAP ANSWERS    15 年前

    首先,请注意,您不希望港口所有者死亡。因此,将任何“危险”代码移到另一个进程中,使端口所有者尽可能地哑口无言。这是二郎方法的错误缓解。现在,如果这个过程结束了,有些事情是非常糟糕的,所以在这种情况下,回收港口可能是聪明的。但既然我们把一切都搬出去了,我们就指望那件事不会发生。

    关于2,端口在终止时将发送一条特定的消息,因此您可以安排生成的进程优雅地检测并终止它。见

    http://www.erlang.org/doc/reference_manual/ports.html

    推荐文章