Ruby on rails 延迟的工作,重新的工作,豆茎?
以下是我的需要:Ruby on rails 延迟的工作,重新的工作,豆茎?,ruby-on-rails,redis,resque,beanstalkd,Ruby On Rails,Redis,Resque,Beanstalkd,以下是我的需要: 排队等候(10.6小时,…)(DJ语法非常完美。) 同时增加工人人数。(Resque或beanstalkd对此有好处,但不是DJ) 必须处理每秒100个工作的推送和弹出。(我需要运行一个测试来确保,但我认为DJ不能处理这么多的工作) Resque和beanstalkd不排队 有一个插件(resque_调度程序)可以实现这一点,但我不确定它有多稳定 我们的环境在amazon上,他们为拥有amazon实例的用户免费推出beanstalkd,这对我们来说是一个好处,但我仍然不确定
- 排队等候(10.6小时,…)(DJ语法非常完美。)
- 同时增加工人人数。(Resque或beanstalkd对此有好处,但不是DJ)
- 必须处理每秒100个工作的推送和弹出。(我需要运行一个测试来确保,但我认为DJ不能处理这么多的工作)
Sidekiq()是您应该查看的另一个选项。对于我在rails2和Rails3中的项目,我会感到非常舒服。 我不知道豆茎,但我很快就会尝的:-)。 我遵循了resque文档中的建议。 我会报告的
Resque vs DelayedJob
Resque与DelayedJob相比如何?为什么您会选择其中一个
- Resque支持多个队列
- DelayedJob支持更细粒度的优先级
- Resque工作人员对内存泄漏/膨胀具有弹性
- 延迟工作人员非常简单,并且易于修改
- Resque需要Redis
- DelayedJob需要ActiveRecord
- Resque只能将JSO对象作为参数放置在队列上
- DelayedJob可以将任何Ruby对象作为参数放置在其队列上
- Resque包括一个Sinatra应用程序,用于监控正在发生的事情
- 如果要添加界面,可以从Rails应用程序中查询DelayedJob
- 您需要多个队列
- 你不在乎/不喜欢数字优先权
- 您不需要保存每个Ruby对象
- 你有潜在的巨大队列
- 你想看看发生了什么吗
- 你预计会有很多失败/混乱
- 您可以设置Redis
- 你的内存不是不够
- 你喜欢数字优先权
- 你没有每天做大量的工作
- 你的队伍保持小而灵活
- 没有太多的失败/混乱
- 你想轻易地把任何东西扔到队列上吗
- 您不想设置Redis
- 你喜欢数字优先权
- 你需要非常快的队列
- 你不想浪费你的公羊
- 你想从事大量的工作
- 您可以使用队列上的JSO对象作为参数
- 您需要多个队列
p.p.S.我现在最喜欢的选择是(对于简单的工作来说非常简单、快速和高效),看看比较一下。亚马逊豆茎不是豆茎 Beanstalkd(队列)确实有延迟的作业,在给定的秒数过去之前,这些作业不会保留在队列之外。如果这就是排队(10.hours,…)的意思,那么计算秒数只是语法上的糖分,在此之前不允许作业可用。只是一个小提示:支持命名队列
object.delay(:queue => 'tracking').method
Delayed::Job.enqueue job, :queue => 'tracking'
handle_asynchronously :tweet_later, :queue => 'tweets'
这是正确的。beanstalkd的put操作接受一个值,该值是作业准备好接收之前的秒数。它还支持优先级。这些队列是否并行运行?是的,您也可以指定每个队列的线程数。如果这样,使用resque的原因是什么?只是想把一切都做完。@baash05-Resque仍然有更好的报告功能,并且不在关系数据库中,因此可以一次处理队列中的更多事情。这取决于你想象的混乱程度。三个10000人的排队可以很好地阻碍延迟工作的进行。resque/redis中的三个10000条输入队列是标准的,并且很容易处理。我发现使用Oracle11g,延迟的_作业可以处理500K-700k左右的作业。我认为除了默认的DJ生成器创建的索引之外,我们还添加了一到两个索引。Delayed_job_web是一种跟踪事物的简单方法。Delayed job现在支持队列。。(有一段时间)回答得很好。赫罗库支持Beanstakld吗?回答得很好。谢谢:)过时的答案,DJ不再处理“任何”ruby对象,因为yaml解析器现在无法导出匿名模块和文件流,因此,例如,几乎不可能安全地转储
request.env
object.delay(:queue => 'tracking').method
Delayed::Job.enqueue job, :queue => 'tracking'
handle_asynchronously :tweet_later, :queue => 'tweets'