2015-10-23 45 views
2

我想在OrientDB中使用Phoenix/Elixir。我決定構建一個小型的演示應用程序,以便對其有所瞭解。菲尼克斯爲OrientDB數據庫彙集

作爲數據庫驅動程序,我將使用MarcoPolo而不是使用Ecto。 MarcoPolo是非常低級的(二進制驅動程序),不支持池化。

我必須使用池嗎?鳳凰有辦法解決這個問題嗎?或者我必須使用類似Poolboy的東西來實現它?或者是其他東西?

我想分享演示應用程序,讓生活更輕鬆。所以我想以正確的方式去做。但是,也許我的做法是矯枉過正。

回答

4

MarcoPolo是一個非阻塞客戶端,這意味着當進程要求MarcoPolo連接向OrientDB發送命令時,MarcoPolo立即將命令發送到OrientDB,但不會等待響應然後作爲Erlang消息接收,因爲它在:gen_tcp上使用:active)。這在實踐中意味着一個MarcoPolo連接應該能夠處理多個客戶進程,因此如果您的應用程序無需處理大量對OrientDB的請求,就無需進行池化。

如果你想使用池,最簡單的解決方案可能是你已經想出的poolboy。我沒有OrientDB特定的設置,但是您可以在Redix(Elixir的Redis客戶端)文檔中找到一些關於如何設置連接池的信息。原則是一樣的。 This是Redix文檔中涉及池化的部分。