当前位置: 首页 > 开发杂谈 >

Day 29 |> Elixir 并行性 (三)

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)

相关文章:

  • 海外仓退货换标_英国海外仓退货换标公司推荐
  • [Android Studio] -- Day 5 主题变换Theme02
  • LeetCode 双刀流:Stack 与 Queue 的相互实作
  • 取得Microsoft Graph API 验证 token - MSAL
  • eBay一件代发的海外仓怎么找?
  • 独立站卖家众筹模式的好处有哪些
  • 如何开展你的分析?
  • DAY25-问答页面设计
  • TikTok Shop本土小店的开通方法
  • 如何使用亚马逊Target RoAS?
  • 完结洒花,来讲讲心得感想吧
  • Day 08 - Spring Boot 常用注释(上)
  • 食谱搜寻系统_搜寻演算法介绍
  • Day29-"练习-4"
  • 先做了个toDoList
  • 阿里云国际版怎么注册绑卡购买香港美国新加坡云主机【2020年最新教程】
  • 海外营销周报:谷歌广告将推出动态排除列表,报告显示2020年美国数字广告营收增长12%
  • WordPress 5.7 引入函数来检查文章是否可以公开查看
  • 搬瓦工VPS注册购买教程 – 支付宝BandwagonHost购买方法教程
  • WordPress禁用古腾堡编辑器全屏模式
  • VPS评测:Netcloud/香港/原生IP/不限流量/月付60港币起
  • 教程:阿里云国际版绑定香港PayPal购买方法
  • 教程/Directory Lister逗比魔改版 Github开源(个人云)
  • 教程/魔改BBR 一键安装脚本 for CentOS/Debian 7+
  • Gutenberg 10.5 支持嵌入PDF,新增块模式,增强自定义器的小工具功能
  • Google Play Store报错DF-DFERH-01怎么办
  • Windows服务器推荐:便宜好用稳定靠谱的国外Windows服务器推荐
  • Gutenberg最新版如何添加导航间隔
  • 自建CDN教程:如何做一个自己的CDN
  • 挖矿是什么?怎么挖矿怎么挖比特币?虚拟币比特币挖矿原理