当前位置: 首页 > 面试题库 >

如何使Webmachine和eredis一起工作?

松灿
2023-03-14
问题内容

一个星期以来,我一直在思考Webmachine应用程序中Redis使用的问题。而且我还没有开悟。

我将使用Eredis,这是用法示例:

{ok, Con} = eredis:start_link().

{ok, <<"OK">>} = eredis:q(Con, ["SET", "foo", "bar"]).
{ok, <<"bar">>} = eredis:q(Con, ["GET", "foo"]).

据我了解,eredis:start_link()应该只在某个地方调用一次。但是,如何获得Con资源的可变性呢?


问题答案:

有几种解决方案

  • 在本地或全局注册Redis连接
  • 使用gproc之类的进程寄存器
  • 将连接的pid保留在webmachine资源上下文中
  • 使用连接池,例如pooler或poolboy
  • 万一您不想在池折扣中将请求排队就可以了

编辑:被误解的问题,下面的第一个答案:

Webmachine和eredis都是遵循OTP原理的
Erlang
应用程序。如果你的应用是OTP符合你可以eredis添加到applications您的.app文件,如下所示:

{application, awesome_app, [
    {description, "My awesome app."},
    {vsn, "0.0.1"},
    {modules, []},
    {registered, []},
    {applications, [kernel, stdlib, 
                    eredis, 
                    webmachine]}
]}.

OTP兼容应用程序使用发行版。创建发行版并启动应用程序之后,applications将在其中启动应用程序。

Rebar是您构建和生成发行版的朋友(更多信息,请参见此处)。本文将介绍使用sinan替代钢筋的方法。



 类似资料:
  • 问题内容: Django的新手,ReactJS的新手。我一直在研究AngularJS和ReactJS,但是决定使用ReactJS。尽管AngularJS拥有更多的市场份额,但它似乎正在逐步超越AngularJS的知名度,并且据说ReactJS更快地被接受。 撇开所有垃圾,我开始学习Udemy的课程,并看了几段视频后,查看它与Django的集成程度似乎很重要。那就是当我不可避免地碰壁只是要启动并运行

  • 问题内容: 运行代码时出现该错误。好的,很好-我只是忘记了获取XMLBeans …,但是它已经退休了,我在他们的档案中找不到最新版本。因此,我发现JAXB可以替代,我下载了JAXB并尝试将jar文件添加到Intellij的库中,但是在寻找XMLBeans依赖项时仍然遇到相同的错误。 如何获得Apache POI以使用JAXB代替XMLBeans?为什么JAXB有7种不同的jar文件,而我却找不到它

  • 问题内容: (我对RESTFul不熟悉,如果我的概念有误,请纠正我) 在RESTFul体系结构中,我们将每个操作映射到URL。如果我单击“发布文章”,可能实际上是URL 和一些数据。 如果我要发布而不是刷新整个网页,则可以使用javascript的XMLHTTPRequest。我发布它,然后获取它的内容,并将其插入到页面的div中。这些动作都是异步的。 然后我知道有一个名为的东西,它是包装器。它使

  • 问题内容: 我刚刚开始使用JSF,看起来很棒,但是我似乎无法弄清楚这最后的障碍。 我习惯了传统的Jquery AJAX函数,这在我的书中很完美。但是我希望找到一种方法使其与JSF协调工作。 这是一个说明我的情况的方案。 我的网站上有一个消息传递页面,用户可以在其中互相发送消息。所以在我的xhtml页面中,我看起来像这样: 效果很好。用户可以发布他们的消息,并将其加载到上面的对话div中。但是现在我

  • Webmachine 是一个应用层,为 mochiweb 提供 HTTP 语义的特性,定义一个简单而清晰的连接应用的方式。

  • 我的pom。xml如下所示 我已经尝试了三天,使用REdhat入门指南让这个简单的示例代码与Infinispan一起使用,并下载了快速入门zip来运行它,但仍然不起作用!我一直收到Spring JMS的错误“无法连接到foo: 11222”或“池未打开”,然后是关于混合Uber和Jars版本的警告。我开始使用ehcache,这很难实现,因为只有有限的简单示例展示了如何从rest调用等中存储、检索和