Ruby on rails 好的后台处理选项

Ruby on rails 好的后台处理选项,ruby-on-rails,ruby,ruby-on-rails-3.2,background-process,Ruby On Rails,Ruby,Ruby On Rails 3.2,Background Process,我正在寻找一个好的背景工作处理器与以下能力 与MySql配合良好 可以有优先权 可以在后台轻松安排任何事情(不仅仅是电子邮件) 能够在完成后重新初始化作业(回调会很好。我很少有任务/作业在每分钟后继续运行),即使是重复的调度程序也可以工作 不应该消耗太多的记忆,(有DJ的经验) 我正在研究的几个选项包括Resque、DJ、Beanstalkd(尚未完全探索) 我在AmazonEC2中有我的生产环境(如果这有助于更好的解决方案) 请告诉我哪一个是一个好的选择,除了这些,还有其他什么是人们现在使用的

我正在寻找一个好的背景工作处理器与以下能力

  • 与MySql配合良好
  • 可以有优先权
  • 可以在后台轻松安排任何事情(不仅仅是电子邮件)
  • 能够在完成后重新初始化作业(回调会很好。我很少有任务/作业在每分钟后继续运行),即使是重复的调度程序也可以工作
  • 不应该消耗太多的记忆,(有DJ的经验)
  • 我正在研究的几个选项包括Resque、DJ、Beanstalkd(尚未完全探索) 我在AmazonEC2中有我的生产环境(如果这有助于更好的解决方案)

    请告诉我哪一个是一个好的选择,除了这些,还有其他什么是人们现在使用的吗?

    我衷心推荐-它非常灵活,使用的资源比Resque或DelayedJob少得多

    它确实需要redis(如Resque),但redis对于任何Rails项目都是有价值的补充,因为它可以作为会话存储和缓存重用。我们的主要数据库是MySQL,我们部署到EC2:-)我们过去使用过延迟作业和救援,但发现它们存在问题,并且占用了大量资源。Sidekiq使用线程,单个Sidekiq工作线程的效率与几个DJ/Resque工作线程的效率相同。以下是项目自述文件中一个有趣的部分,我可以证实:

    你会发现你可能需要50个200MB的刷新进程来锁定你的 而一个300MB的Sidekiq进程将挂起相同的CPU和 执行相同数量的工作。请看我在Resque的博客文章 内存效率和我如何缩小碳五客户的 将加工场从9台机器改为1台机器

    总而言之:

  • 它在MySQL上工作得很好——不是真的,但在MySQL上也没有问题
  • 您可以通过设置不同的优先级
  • 你可以很容易地(特别是有特别的ala)
  • 对此不太确定,我们使用where+cron进行重复性工作
  • 你会喜欢Sidekiq的小内存占用
  • 我衷心推荐——它非常灵活,使用的资源比Resque或DelayedJob少得多

    它确实需要redis(如Resque),但redis对于任何Rails项目都是有价值的补充,因为它可以作为会话存储和缓存重用。我们的主要数据库是MySQL,我们部署到EC2:-)我们过去使用过延迟作业和救援,但发现它们存在问题,并且占用了大量资源。Sidekiq使用线程,单个Sidekiq工作线程的效率与几个DJ/Resque工作线程的效率相同。以下是项目自述文件中一个有趣的部分,我可以证实:

    你会发现你可能需要50个200MB的刷新进程来锁定你的 而一个300MB的Sidekiq进程将挂起相同的CPU和 执行相同数量的工作。请看我在Resque的博客文章 内存效率和我如何缩小碳五客户的 将加工场从9台机器改为1台机器

    总而言之:

  • 它在MySQL上工作得很好——不是真的,但在MySQL上也没有问题
  • 您可以通过设置不同的优先级
  • 你可以很容易地(特别是有特别的ala)
  • 对此不太确定,我们使用where+cron进行重复性工作
  • 你会喜欢Sidekiq的小内存占用

  • 我已经用过你的工作了。您可以使用延迟的作业或重新设置。请看,我面临着延迟作业的问题,因为它会在高负载时阻塞内存。在这种情况下,我必须重新启动工人,这是我使用延迟工作的额外痛苦。您可以使用延迟的作业或重新设置。请看,我面临着延迟作业的问题,因为它会在高负载时阻塞内存。在这种情况下,我必须重新启动工人,这是一个额外的问题。他听起来很有趣,会让sidekiq试一试。这听起来很有趣,会让sidekiq试一试