2

如果主管使用rest_for_one重新启动策略,并且使用 向其中添加了一个孩子supervisor:start_child,那么新的孩子被认为是现有孩子“之前”还是“之后”?

或者换句话说,如果现有的孩子是A,新的孩子是B,死了会BA,还是死了会AB?我认为是前者,但文档没有明确说明。

4

1 回答 1

1

来自Erlang 文档

rest_for_one - if one child process terminates and should be 
 restarted, the 'rest' of the child processes -- i.e. the child processes after 
 the terminated child process in the start order -- are terminated. Then the 
 terminated child process and all child processes after it are restarted.

所以如果你添加一个孩子,如果任何现有的孩子死亡但新的孩子不能杀死任何其他现有的孩子,它将重新启动,这里的顺序是启动顺序。

于 2013-11-08T14:44:35.823 回答