Agent
Agent 模组提供了我们可以实践一个基本的服务器的一个 API 的功能。
可以让我们在不同的节点间共用状态及更新状态。
透过 Agent,我们可以将一个模组包装成可以初始化的一个服务器,并且可以让不同行程间去做存取。
defmodule Test do
use Agent
def start_link(initail_state) do
Agent.start_link(fn -> initail_state end, name: __MODULE__)
end
def value do
Agent.get(__MODULE__, &(&1))
end
def add do
Agent.update(__MODULE__, &(&1 + 1))
end
def sub do
Agent.update(__MODULE__, &(&1 - 1))
end
end
__MODULE__是模组名称,也就是Test。如此,我们便成功完成了一个可以做为一个简易API执行的模组。
iex> Test.value()
0
iex> Test.add
:ok
iex> Test.add
:ok
iex> Test.value()
2
iex> Test.sub
:ok
iex> Test.value()
1
在 children 中放入 Test 以及其初始值的 Tuple,便能在监督树下运行此 API。
children = [
{Test, 0}
]
Supervisor.start_link(children, strategy: :one_for_all)
<<: [Day30] AWS Elastic Load Balancing (ELB)
23 - Design Pattern(3) - Builder Builder pattern 常...
看完这篇文章你会得到的成果图 前言 这一篇我们会拿现有的 day 17 成品来改, 我们这篇主要要学...
Android 10以上就很简单,直接使用MediaStore抓到图片路径,然後送给图片剪裁就好 i...
建立文字物件 使用new建构出PIXI.Text()文字物件,并将文字的内容做为第一个参数传入,再将...
本文同步更新於blog Proxy Pattern 为另一个对象提供一个替身或占位符以控制这个对象...