Current section

Files

Jump to
nex_core lib nex supervisor.ex
Raw

lib/nex/supervisor.ex

defmodule Nex.Supervisor do
@moduledoc """
框架层监督树,负责管理 Nex 框架的核心进程。
监督的进程:
- `Phoenix.PubSub` - 用于 WebSocket 热重载广播
- `Nex.Store` - 页面级状态存储
- `Nex.Reloader` - 热重载文件监视器
这些进程对用户完全透明,由框架自动管理。
如果任何进程崩溃,会自动重启,不影响用户应用。
"""
use Supervisor
def start_link(opts \\ []) do
Supervisor.start_link(__MODULE__, opts, name: __MODULE__)
end
@impl true
def init(_opts) do
children = [
# PubSub 用于热重载 WebSocket 通信
{Phoenix.PubSub, name: Nex.PubSub},
# 页面级状态存储
Nex.Store,
# 热重载器(开发环境)
Nex.Reloader
]
# one_for_one: 一个进程崩溃只重启该进程,不影响其他
Supervisor.init(children, strategy: :one_for_one)
end
end