ruby-on-rails – Resque或Gearman – 为后台工作选择正确的工具

我们正在开发一个Web应用程序,其中约50%的写入请求,我们最终将数据推送到多个数据存储,并在这些数据存储中插入和更新大量记录.为了提高响应时间,我们希望在后台异步处理这些请求.

我们的Web应用程序正在用Ruby on Rails编写.

我倾向的两个解决方案是Resque和Gearman.

Resque:更多信息:http://github.com/blog/542-introducing-resque
Resque似乎非常适合Ruby,它专门用于后台处理. “后台作业可以是响应执行的任何Ruby类或模块,您现有的类可以轻松地转换为后台作业,也可以专门创建新类来进行工作.

Gearman:它不是专门用于异步处理的后台作业,但这是绝对可以做的.显然更强大,或者似乎. Gearman的另一个优点是,虽然您的客户端代码可能在Ruby中,但是工作人员代码可能就在PHP中.虽然现在我们完全是Ruby on Rails应用程序,谁知道如果将来我们可能会想要使用PHP或其他方面取决于手头的工作.

你会推荐什么你有两个经验吗?在两者之间选择时,我应该牢记什么现实生活中的生活挑战?我甚至在这里比较苹果和苹果?

解决方法

当我正在寻找一种可以为异步提供工作负载分配的分布式分拣机制时,我对Gearman有一些经验.在集群环境中处理.

我可以告诉你,在“模拟”案例中,异步处理被分派到2台机器(每台机器上的2名员工= 4名工人).不是在一个真实的情况(无论告诉你).当“模拟”提供有用的信息时,实际情况将被实现.

您要选择的机制只是工作负载分配中的一个因素,因此,当并行工作的分布式“工作者”开始在数据存储上写入时,请确保不会遇到损坏或无效的数据.

我建议采取我所做的“模拟”方法,并在决定使用哪种方法之前进行测试.

问候,

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...