【问题标题】:How to close connection with Mariaex and Elixir如何关闭与 Mariaex 和 Elixir 的连接
【发布时间】:2023-03-19 06:18:01
【问题描述】:

我正在使用Mariaex.start_link 方法与 MySQL 数据库建立连接,它返回给我一个 pid。我想知道管理这些 pid 的最佳做法是什么,即每次都关闭并创建新的?根据需要保留1, 2, ... n pid(s)?

另外,我将如何关闭该连接或终止该 pid?我尝试了 Process.exit:normal 并没有阻止它,我也尝试了 :kill 但我可能从 Mariaex 得到了一个错误,这样杀死它似乎并不干净。

谢谢!

【问题讨论】:

    标签: mysql elixir


    【解决方案1】:

    您可以参考Ecto 代码库以了解它是如何使用handles this case

    基本上,它启动一个连接,执行一个查询并在之后立即停止Mariaex GenServer

    with {:ok, conn} <- Mariaex.start_link(opts) do
      value = Ecto.Adapters.MySQL.Connection.execute(conn, sql, [], opts)
      GenServer.stop(conn)
      value
    end
    

    【讨论】:

    • 感谢您的回复:它给了我一个想法。另一件事是我还没有通过教程中的主管和/或GenServer。我只是从一个非常基本的项目开始。 GenServer 是我可以从 Mariaex 获得的参考,还是我必须从一开始就将项目设置为与 GenServer 一起使用?
    • Mariaex GenServer 本身。如果不了解基本的 OTP 原则,特别是不了解 GenServer 是什么,就无法在 Elixir 中实现任何有意义的东西。
    • 好的听起来不错。我估计。我将继续阅读 The Little Elixir 和 OTP Guidebook。谢谢!
    • “The Little Elixir and OTP Guidebook”——这是一个不错的选择 :)
    猜你喜欢
    • 2018-03-08
    • 2022-08-12
    • 1970-01-01
    • 2014-03-31
    • 2011-03-07
    • 1970-01-01
    • 1970-01-01
    • 2012-11-05
    • 2016-02-04
    相关资源
    最近更新 更多