繁体   English   中英

在主管启动后启动动态simple_one_for_one工作人员

[英]Starting dynamic simple_one_for_one workers after supervisor starts

我有一个名为Supervisor ,监督许多simple_one_for_one工作者,它们定期为我的系统上的每个用户执行任务。

我希望应用程序在Supervisor第一次启动时为每个用户启动一个worker,如果Supervisor在以后重新启动,我希望应用程序执行相同操作,无论出于何种原因。

目前,我在Applicationstart(type, args)回调中动态启动所有子项,但如果Supervisor重新启动,则不会启动所有子进程。

Supervisor启动/重启后,如何确保所有动态子工作者立即启动?

(我的应用程序在Elixir中,但同样的原则适用于Erlang。)

我做到这一点的一种方法非常有效,就是使用另一个主管和一个“重启工作者”。 你的主管是新主管的孩子 - 它是重启工作者的兄弟。 新主管使用one_for_allrest_for_one ,这样如果您的主管死亡,重启工作人员也会重新启动。

重新启动重新启动工作程序时,它可以启动动态工作程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM