【发布时间】:2019-03-22 17:38:46
【问题描述】:
我正在尝试创建一个 elixir/erlang ets 表并在应用程序启动时使用一些数据填充它。我看到它在启动时运行,但可能是编译/运行时错误?
例如:
def start(_type, _args) do
import Supervisor.Spec
# Define workers and child supervisors to be supervised
children = [
DataToETS,
]
opts = [strategy: :one_for_one, name: App.Supervisor]
Supervisor.start_link(children, opts)
end
然后是DataToETS:
defmodule DataToETS do
use Task
def start_link(opts) do
Task.start_link(DataToETS, :run, [])
end
def run do
# Load to the ETS
end
end
在我的DataToETS 中,我会记录并记录。知道如何在应用程序运行时填充然后访问吗?
【问题讨论】:
-
您是否尝试过创建表,然后将其填充到
DataToETS的init回调中?这就是要走的路。 -
使用
start_link函数会怎样? -
我知道这如何与 GenServer 一起工作。但这是导致它的运行时/编译时间差异吗?
-
这将在运行时工作,但在应用程序启动时。如果您发布您的
DataToETS实现,我将能够更好地帮助您。 -
@Sheharyar 谢谢我已经进行了更新以包括
DataToETS。我知道加载正在工作我可以在 iex 中运行它并加载。刚开始。谢谢。