我正在Erlang中编写一个Web应用程序,并希望将我的数据存储到PostgreSQL。
我的应用程序中有两种资源。一种非常重要,而另一种则不那么重要。
我希望获得最大的效率并提出这样的想法:为PostgreSQL编写一个网关。网关是gen_server
,业务逻辑(BL)部分可以与网关通信以存储资源。
receive
一条消息(成功或失败),最后用户回复一个网页。我对此想法的期望是每个请求的秒数,因为大部分资源都不太重要。但我想知道这是不是一个好主意,换句话说,我能真正得到我所期待的吗?
请根据您的经验或一些可靠的“网络搜索结果”回答。谢谢。 : - )
答案 0 :(得分:4)
我可以看到您的提案存在两个问题:
我要做的是创建一个负责数据库交互的辅助模块(不是进程)。此过程将使用支持连接池的postgresql库(因此对DB的调用可以具有一些并行性)。
如果您希望对不太重要的资源执行非阻塞数据库操作,只需生成一个进程来进行数据库交互并继续。
postgresql erlang库的一些链接(我没有使用过):