1
我正在開發Elixir OTP應用程序設計。在應用程序設計方面我有以下選擇。Elixir OTP設計 - 多少個工藝
以下是兩種設計。
|---supervisor
| |---handler for work #1 (GenServer)
| |--handler task (Task)
| |---handler for work #2 (GenServer)
| |--handler task (Task)
| |----handler for work #3 (GenServer)
| |--handler task (Task)
每個處理程序執行不同類型的工作(如fetch twitter,fetch news等)。
主管動態運行一個或多個處理程序。處理程序每隔幾秒執行一次以獲取不同類型的工作。
任務類型是有限的(如日誌數據或發佈數據)每個處理程序將獲取並記錄數據或發佈數據。工作處理程序獲取數據並生成任務以處理和發佈數據。
在上述設計中,任務的生命週期將一直持續到記錄或發佈數據,並且工作處理器的生命週期將一直持續到獲取單個或多個記錄。主管會在幾秒鐘後再次動態運行處理程序。
同樣可以按照以下方式進行設計。
|---supervisor (handler)
| |---handler for work #1 (GenServer)
| |---handler for work #2 (GenServer)
| |---handler for work #3 (GenServer)
|---supervisor (task)
| |---handler for task #1 (GenServer)
| |---handler for task #2 (GenServer)
在上面的設計中,兩個主管分別處理工作和任務。
任務處理程序將在本地別名下注冊。工作處理程序將發送消息到相應的任務以進一步處理。
這些方法是否存在任何限制,以及根據OTP針對並行設計提出了哪些建議。
這是一個相當廣泛和有點模棱兩可的問題。投票結束。 –