Elixir OTP设计-有多少个过程

Elixir OTP设计-有多少个过程,elixir,Elixir,我正在从事Elixir OTP应用程序设计。在应用程序设计方面,我有以下选择 以下是两种设计 |---supervisor | |---handler for work #1 (GenServer) | |--handler task (Task) | |---handler for work #2 (GenServer) | |--handler task (Task) | |----handler for work #3 (GenServer) |

我正在从事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)
每个处理程序执行不同类型的工作(如获取twitter、获取新闻等)

主管动态运行一个或多个处理程序。处理程序每隔几秒钟执行一次,以获取不同类型的工作

任务类型是有限的(如日志数据或post数据),每个处理程序将获取并记录数据或post数据。work处理程序获取数据并生成任务来处理和发布数据

在上述设计中,任务的生命周期将一直到记录或发布数据,而工作处理程序的生命周期将一直到获取单个或多个记录。主管将在几秒钟后再次动态运行处理程序

同样,也可以按照以下方式进行设计

|---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,建议哪种方法用于并行设计

这就是我计划实施的方式。稍作改动

|---supervisor (handler)
|   |---handler for work #1 (GenServer)
|       |--handler task  (Task)
|   |---handler for work #2 (GenServer)
|       |--handler task  (Task)
|   |---handler for work #3 (GenServer)
|       |--handler task  (Task)

而不是每隔几秒钟动态运行处理程序。将运行和监督每个处理程序。处理程序将每隔几秒钟创建一个任务。

这就是我计划如何实现的。稍作改动

|---supervisor (handler)
|   |---handler for work #1 (GenServer)
|       |--handler task  (Task)
|   |---handler for work #2 (GenServer)
|       |--handler task  (Task)
|   |---handler for work #3 (GenServer)
|       |--handler task  (Task)

而不是每隔几秒钟动态运行处理程序。将运行和监督每个处理程序。处理程序将每隔几秒钟创建一个任务。

这是一个相当宽泛且有点模糊的问题。投票结束。这是一个相当宽泛而且有点模棱两可的问题。投票结束。