Если вы просто хотите создать таблицу и заполнить ее один раз (без привязки к другому подпроцессу, например GenServer
), вы можете просто сделать это напрямую в обратном вызове start/2
вашегоapplication:
def start(_type, _args) do
# Create ETS Table here
# and seed it with initial data
# Other stuff...
end
Если вы хотите сделать это исключительно при запуске подпроцесса, вы можете создать / заполнить его в обратном вызове init/1
.Вот как это будет выглядеть для GenServer:
defmodule DataToETS do
def start_link(_args) do
GenServer.start_link(__MODULE__, :ok, name: __MODULE__)
end
def init(:ok) do
# Create ETS Table here
# and seed it with initial data
:ok
end
end
Это будет похоже на другие процессы, такие как Supervisor, Task, GenStage и т. Д. ...