gpt4 book ai didi

elixir - 如何在 elixir 模块中创建全局变量

转载 作者:行者123 更新时间:2023-12-03 16:00:51 29 4
gpt4 key购买 nike

我在 Elixir 中有以下代码:

def get_trackerid(imei) do
client = get_new_client()
{:ok, result} = :cqerl.run_query(client, "SELECT * FROM trackers_by_imei where imei = \'#{imei}\';")
row = :cqerl.all_rows(result)
end

现在,现在许多函数都在调用 get_trackerid 函数,每次调用该函数时,都会调用数据库。

有没有办法在 elixir 中编写函数,以便将结果存储在局部变量中。因此,当下一次请求同一 imei 的 trackerid 时,我可以从局部变量本身获取数据。

我认为elixir中没有全局变量的概念,所以这不是一个选项,对吧?

最佳答案

您有几个选项可以在 Elixir 中保存状态。

如果此方法是运行 GenServer 的模块的一部分,那么您可以使用 state缓存值的参数。

您也可以使用 ets table缓存值。这将在 GenServer 内部和外部工作。

关于elixir - 如何在 elixir 模块中创建全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35465306/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com