当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Elixir Registry.start_link用法及代码示例


Elixir语言中 Registry.start_link 相关用法介绍如下。

用法:

start_link(options)
(从 1.5.0 开始)
@spec start_link([start_option()]) :: {:ok, pid()} | {:error, term()}

将注册表作为主管进程启动。

手动启动它可以是:

Registry.start_link(keys: :unique, name: MyApp.Registry)

在你的主管树中,你会写:

Supervisor.start_link([
  {Registry, keys: :unique, name: MyApp.Registry}
], strategy: :one_for_one)

对于密集型工作负载,还可以对注册表进行分区(通过指定:partitions 选项)。如果需要分区,那么一个好的默认设置是将分区数设置为可用的调度程序数:

Registry.start_link(
  keys: :unique,
  name: MyApp.Registry,
  partitions: System.schedulers_online()
)

或者:

Supervisor.start_link([
  {Registry, keys: :unique, name: MyApp.Registry, partitions: System.schedulers_online()}
], strategy: :one_for_one)

选项

注册表需要以下键:

  • :keys - 选择键是 :unique 还是 :duplicate
  • :name - 注册表及其表的名称

以下键是可选的:

  • :partitions - 注册表中的分区数。默认为 1
  • :listeners - 通知:register:unregister 事件的命名进程列表。如果注册的进程崩溃了,如果监听器想要得到通知,注册的进程必须被监听器监听。
  • :meta - 要附加到注册表的元数据的关键字列表。

相关用法


注:本文由纯净天空筛选整理自elixir-lang.org大神的英文原创作品 Registry.start_link(options)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。