寻找关于背景宝石的建议

时间:2011-01-31 22:06:26

标签: ruby-on-rails heroku

我打算在Heroku上运行我们的网络应用程序。我正在寻找一个宝石来处理一些后台工作。即发送电子邮件,调用一些通过API将文件提交给编码服务的方法等。

到目前为止,有一些人想到的是resque和delayed_job。我听说resque的好东西,它似乎也是更受欢迎的宝石in its category。 Ryan Bates在delayed_job上做了很好的screen cast。但是,我听说delayed_job有一些问题。即某些地区不太稳定。所以我听到了。

Heroku提供Redis-to-Go。他们有免费的计划,提供5mb。如果我使用resque,这5mb计划是否足以处理后台工作?我不想最终只为后台工作花费更多。

只是担心如果我使用resque,我需要另一个数组来运行后台作业。如果我使用Redis做其他事情,那么也许它值得。是否值得拥有另一个数据库来处理后台工作?

我应该考虑替代宝石吗?如果是这样的话?

2 个答案:

答案 0 :(得分:1)

delayed_job和resque都运行得相当好。随着后台请求量的增加,resque应该更好地扩展。

resque对redis的使用应限于任务请求。后台任务所需的大型数据对象应存储在后台工作队列以外的某个位置。例如,发送给要编码的后台工作程序的文件应存储在AWS S3或其他一些持久存储中,而不是resque使用的redis队列中。

使用delayed_job或resque时,您需要运行需要花钱的后台工作人员。您可能希望查看自动扩展解决方案,以根据需要动态启动和停止后台工作程序。

http://s831.us/h3pKE6为例。

答案 1 :(得分:0)

我们非常密集地使用了delayed_job,发送了数百个并发电子邮件,而且效果非常好。完美无缺。是的,工人的成本为36美元/月。但是,单个工作人员完成了大量工作......每秒发送一些相当复杂的电子邮件(大量的dbase查找)。