我有一个名为“monitor_node”的进程层次结构。这些monitor_nodes中的每一个都由一个监督者监督。
现在,这些节点中的每一个都可能具有复杂的内部结构。意思是,它可能(或可能没有)具有正常运行所需的一些子流程。示例:发送保持活动消息的进程。到目前为止,我一直在使用普通的 spawn_link 来创建这些“内部”进程。
但是,我已经意识到在 monitor_node 的 init 函数中生成它们(正在被监督)有时会导致该函数失败(因此整个监督树失败)。我的问题是:将这些内部流程附加到主管树是否是一个好的解决方案?我正在考虑将 monitor_node 更改为监督其内部流程的主管。
我的疑问是:
我将不得不监督相当数量的非常小的流程。我不确定这是否是一个好习惯。
我可能事先不知道给定的“内部”流程是一个简单的流程或具有一些内部结构(也产生其他流程)。如果是后者,那么我可能应该将这些“内部-内部”进程附加到主管树。
我希望我没有让你太困惑。期待答案。
编辑:
此处讨论了一个非常相似(如果不相同)的问题(第 3 篇文章)。给出的解决方案与我给出的废话答案几乎相同。