2017-11-19 1 views
0

私はMariaex.start_linkメソッドを使用してMySQLデータベースとの接続を確立しています。それは私にpidを返します。私はこれらのpidを管理するベストプラクティス、つまり毎回新しいPidを作成して作成することを迷っていましたか?必要に応じて1, 2, ... nのpidを周りに保管しますか?MariaexとElixirとの接続を閉じるには

また、その接続を閉じるか、そのpidを削除しますか?私はProcess.exit:normalで試してみましたが、それを止めずに:killで試してみましたが、おそらくMariaexからエラーが出てきます。

ありがとうございます!

答えて

0

Ectoコードベースを参照してください(handles this caseを参照してください)。

基本的に、それは、接続を開始し、クエリを実行した直後にMariaexGenServerを停止します。

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

は、応答をありがとう:それは私のアイデアを提供します。もう1つのことは、チュートリアルの監督者やGenServerをまだ経験していないことです。私はちょうど非常に基本的なプロジェクトから始めています。 'GenServer'は' Mariaex'から得ることのできるリファレンスですか、あるいはGenServerと協力して作業するようにプロジェクトを設定しなければなりませんか? – srbdev

+0

'Mariaex'は' GenServer'自体です。基本的なOTPの原則を理解することなく、特に 'GenServer 'が何であるかを理解することなく、Elixirで意味のあるものを実装する方法はありません。 – mudasobwa

+0

いいですね。私は理解した。私はちょうどリトル・エリクシールとOTPのガイドブックに行きます。ありがとう! – srbdev

関連する問題