簡體   English   中英

Erlang:誰監督主管?

[英]Erlang: Who supervises the supervisor?

在我所見過的所有Erlang主管示例中,通常都有一個“主”主管監督整個樹(或者至少是主管樹中的根節點)。 如果“主人” - 監督員破裂怎么辦? 如何監督“主人”監督? 任何典型的模式?

頂級管理程序使用start_link在您的應用程序啟動/ 2回調中啟動,這意味着它與應用程序進程鏈接。 如果應用程序進程收到頂級主管死亡的退出信號,它會執行以下兩項操作之一:

  1. 如果應用程序作為永久應用程序啟動,則整個節點終止(並且可能使用HEART重新啟動)。

  2. 如果應用程序作為臨時啟動應用程序停止運行,則不會嘗試重新啟動。

通常,Supervisor設置為“僅”監督其他進程。 哪個男士沒有用戶編寫的代碼由Supervisor執行 - 所以它不太可能崩潰。

當然,這不能強制執行......所以典型的模式是在Supervisor中沒有任何特定於應用程序的邏輯......它應該只監督 - 而不做任何其他事情。

好問題。 我必須同意所有示例和教程大多忽略了這個問題 - 即使偶爾有人提到問題(沒有提供示例解決方案):

如果您需要可靠性,請至少使用兩台計算機,然后讓它們相互監督。 然而,如何使用OTP實際實現(使用文檔和教程的當前狀態)似乎介於隱藏和秘密之間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM