对于我的项目,我会感到非常舒适,有collectiveidea/delayed_job个rails2和3.
Resque vs DelayedJob
Resque与DelayedJob相比如何?为什么你会 Select 其中一个?
- Resque支持多个队列
- DelayedJob支持更细粒度的优先级
- Resque工作人员对内存泄漏/inflating 具有弹性
- 延迟工作人员非常简单,而且很容易修改
- Resque需要Redis
- DelayedJob需要ActiveRecord
- Resque只能将JSO对象作为参数放置在队列中
- DelayedJob可以将任何Ruby对象作为参数放置在其队列中
- Resque包括一个Sinatra应用程序,用于监控正在发生的事情
- 如果您想添加界面,可以从Rails应用程序中查询DelayedJob
如果您正在进行Rails开发,那么您已经有了一个数据库和ActiveRecord.DelayedJob非常容易安装,效果非常好.GitHub使用了数月,处理了近2亿个工作岗位.
如果出现以下情况,请 Select 重新设置:
- 你需要多个队列
- 你不在乎/不喜欢数字优先权
- 你不需要保存所有的Ruby对象
- 你可能会排很多队
- 你想看看发生了什么吗
- 你预计会有很多失败/混乱
- 你可以设置Redis
- 你的内存还不够
如果出现以下情况,请 Select DelayedJob:
- 你喜欢数字优先权
- 你没有每天做大量的工作
- 你的队伍保持小而灵活
- 没有太多的失败/混乱
- 你想轻易地把任何东西扔到队列上吗
- 你不想安装Redis
Select 豆茎,如果:
- 你喜欢数字优先权
- 你想要非常快的排队
- 你不想浪费你的公羊
- 你想为大量工作服务
- 可以使用队列中的JSO对象作为参数
- 你需要多个队列
Resque决不是一个"更好"的延迟工作,所以一定要 Select 最适合你的应用程序的工具.
漂亮的comparison of queueing backend speed:
enqueue work
-------------------------------------------------
delayed job | 200 jobs/sec 120 jobs/sec
resque | 3800 jobs/sec 300 jobs/sec
rabbitmq | 2500 jobs/sec 1300 jobs/sec
beanstalk | 9000 jobs/sec 5200 jobs/sec
祝您有个美好的一天!
另外,有一条铁路大约有resque、Delayed Job(revised version)和Beanstakld.看一看
P.P.S.我最喜欢的choiche现在是Sidekiq(对于简单的工作来说非常简单、快速和高效),看看this page做比较.