當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。