Erlang Design有关HTTP服务的建议

时间:2011-07-20 04:57:03

标签: erlang otp mochiweb mochijson2

我是Erlang的新手但是我想开始使用一个适用于该技术的应用程序,因为我有并发的愿望。

这张照片突出了我想要做的事情。

http://imagebin.org/163917

从队列中提取消息并将消息路由到工作进程,这些进程之前由于用户在Django应用程序中输入表单而设置。该设置需要一些额外的数据库(预先存在的数据库,因此我不想在此位使用ETS / DETS)查找,然后查询消息路由器并创建相关过程。

我的问题随之而来,因为我可能希望将来为所有需要设置和任务的工人询问我的Django应用程序,这里最好的沟通方式是什么。我赞成HTTP / json并且已经阅读了我在Mochiweb和MochiJson上找不到的东西,我想我会做我想要的。我正计划拥有一个OTP主管和应用程序,那么有一个单独的mochiweb进程然后将erlang消息传递给路由器是否明智?

由于所有教程都在讨论如何使用脚本创建目录结构,我已经与mochiweb进行了一些努力,这似乎是以mochiweb为中心设计 - 这不是我想要的,我想要一个轻量级的mochiweb过程,可以进行偶尔的工作。

请撕开它,欢迎所有评论。

干杯

戴夫

1 个答案:

答案 0 :(得分:2)

mochiweb真棒,但我认为你真正想要的是webmachine。完整的文档可用herehere。简而言之,webmachine是一个用于制作REST应用程序的工具包,我认为这就是你想要的。它在幕后使用mochiweb,但隐藏了所有复杂(和未记录的)细节。创建webmachine项目时,您将获得完整的OTP应用程序和默认资源。从那里你将做类似以下的事情:

  1. 添加您自己的资源(或修改+重命名默认资源)。
  2. 修改调度程序,以便您的资源和路径适用于您的应用。
  3. 添加代码以创建和监控您的工作进程 - 可能是gen_server和主管。有关提示,请参阅this及相关文章。请注意,您希望在创建项目时向您提供的主管下启动。
  4. 修改资源以与gen_server进行通信。
  5. 我没有完全按照你要求的其他内容 - 在评论中回答任何后续问题可能更容易。