2016-06-11 98 views
0

我是排队系统的新手。我使用当前应用程序的resque,并有三个队列进行监视。我想知道运行和管理复印作业的最佳方法是什么。问题的原因是我对互联网上的开发人员建议的这么多选项有些困惑。更具体地说,我的困惑在于这两种策略。管理复职工作的最佳方式是什么?

  • resque池
  • resque与神游泳池

为什么我需要resque池,如果我能与神单独运行工?

+0

你的查询是否解决? –

+0

不是真的,我仍然与可用于做这样一件基本事情的大量宝石混淆。 我计划部署我的应用程序与capistrano +厨师。运行上帝增加了似乎不可避免的复杂性。但我并不能真正理解复苏池的需要。似乎有太多杀死鼠标的工具。 没有理由使用resque pool或其他方式。如果有的话,甚至没有分析权衡。 – Rahul

+0

你能解释我的需求吗? 你的工作人员有多频繁? –

回答

-1

运行作业通常是异步任务。这意味着你不要等他们完成继续与您的要求或任何称为工作。

由于工作性质是异步的,这可能意味着您在某个时候一次请求多个工作。由于CPU的限制,这些作业会发现一个繁忙的CPU并等待或失败。

resque pool是一种让他们保持一致的方法,一次执行一个。如果他们失败了,他们有时会进入重试模式等。

上帝是一个守护进程监控工具。它会监视作业的服务器,以允许接受作业,但不一定处理故障,或者按照它们进来的顺序处理作业等。

将所有这些封装成一个好工具是sidekiq。还有一个关于它的railscast,它解释了如何使用它(即使它可能有点老):http://railscasts.com/episodes/366-sidekiq

+0

感谢您的回答...有没有任何senario当resque-pool可能是可以避免的。我问这个的原因是因为我觉得这是一个额外的复杂性。 – Rahul

1

Resque被设计为处理后台作业,基本上是为了处理在较短时间内保持队列的作业。
它作为延迟工作的替代品来到了图片中。当你的后台工作增加时,你应该选择Resque。
现在在谈论监控之前,我会谈一谈Resque如何工作。

  1. Resque具有Redis的作为其后端这是一个在存储器的数据库中,具有redis的作为后端使它更快 。
  2. Resque具有取出作业并执行作业的过程,作业人员执行作业 并派生一个将执行作业并退出的子作业。因此,典型的 每个作业的一个分支是Resque默认提供的分支。

  3. 现在有各种各样的插件可以增强Resque的功能。 例如:Resque游泳池,

我们为什么需要它,什么时候:人们有这样每一个叉工人的多个作业的要求。 人们想要这些东西,所以这些插件帮助完整。

  • Resque Pool:是一个管理resque工作者池的守护进程。通过一个简单的配置文件 ,它为您管理您的员工,为每个员工类型启动 适当数量的员工。 所以它让你的生活变得轻松,因为你可以用这个来管理你的工人。
  • 上帝也作为一个工具来监视你的工人基本上所有这些都是为了增强现有的Resque功能。
  • 你也可以寻找Resque的Web它是用于监视Resque系统门户网站:

您可以按照给定的链接哪些是帮助全对我说: Redis的持久性:http://redis.io/topics/persistence

如何Resque与Redis的工作原理:http://girders.org/blog/2011/10/30/how-queuing-with-resque-works/

Resque-网:https://github.com/resque/resque-web

教程:http://www.sitepoint.com/simple-organized-queueing-with-resque/

多个Redis的服务器:What's the Point of Multiple Redis Databases?

的Redis的数据库

Resque调度:https://github.com/resque/resque-scheduler

Resque池管理人员:https://github.com/nevans/resque-pool

Resque的多岗位叉:https://github.com/stulentsev/resque-multi-job-forks

部署在生产中:How to deploy resque workers in production? deploy-resque-workers-in-production?rq = 1

相关问题