Elixir 中状态服务器进程与运行时的深入探讨
1. 保持进程状态
服务器进程具备维持特定进程状态的能力。例如,在与数据库交互时,需要维护一个连接句柄。为了在进程中保存状态,可以为循环函数添加额外的参数。以下是基本示例:
def start do
spawn(fn ->
initial_state = ...
loop(initial_state)
end)
end
defp loop(state) do
...
loop(state)
end
1.1 扩展数据库服务器
以数据库服务器为例,使用随机数模拟连接句柄。首先在进程启动时初始化连接:
defmodule DatabaseServer do
...
def start do
spawn(fn ->
connection = :rand.uniform(1000)
loop(connection)
end)
end
...
end
接着修改循环函数:
defmodule DatabaseServer do
...
defp loop(connection) do
receive do
{:run_query, from_pid, query_def} ->
query_re
超级会员免费看
订阅专栏 解锁全文
26

被折叠的 条评论
为什么被折叠?



