Resque和多服务器架构

时间:2017-02-25 17:15:47

标签: resque

我还没有真正使用过Resque。我有以下问题和假设,我想验证:

1)我了解您可以通过将每个resque实例配置为指向中央redis服务器来实现多服务器架构。正确的吗?

2)这是否意味着任何resque实例都可以将项添加到队列中,任何工作者都可以处理这些队列中的任何一个?

3)多个工作人员可以响应队列中的同一项吗?即一个服务器放置"项目2已更新"在队列中,不同服务器上的1,2和3工作者都可以采取行动吗?或者我需要创建单独的队列?我想要一个pub / sub类型的任务。

4)Sinatra监控应用程序是否存在于每个Resque实例上?或者只有一个知道所有队列和工作人员的应用程序?

5)Resque知道任务何时完成?即监控应用程序是否显示任务正在进行中?或者只是一个工人拿走了它?

6)监控应用程序是否显示已完成的任务?即如果任务快速完成,我能否在最近的某个时刻看到该任务已完成?

7)我是否可以通过编程方式查询任务是否已启动,正在进行或已完成?

1 个答案:

答案 0 :(得分:0)

由于我在项目中广泛使用resque,因此您的查询的答案很少:

  

我了解您可以通过将每个resque实例配置为指向中央redis服务器来实现多服务器体系结构。正确的吗?

答:是的,您有多个服务器指向单个resque服务器。我正在运行类似的架构。

  

这是否意味着任何resque实例都可以将项添加到队列中,任何工作人员都可以处理这些队列中的任何一个?

Ans:这取决于您配置服务器的方式,您必须创建队列并为他们分配工作人员。 您可以拥有多个队列,每个队列可以有多个工作人员处理它们。

  

多个工作人员可以响应队列中的同一项吗?即一个服务器将“项目2已更新”放入队列中,工作人员1,2和3可以在不同的服务器上进行操作吗?或者我需要创建单独的队列?我想要一个pub / sub类型的任务。

Ans:这再次根据您的要求,如果您想要一个队列并且所有工作人员都在工作,这也是有效的。
或者如果你想为每个服务器分别建立队列,你也可以这样做。
任何服务器都可以将作业放在任何队列中,但只有已分配的工作人员才能接收并处理该作业

  

Sinatra监控应用程序是否存在于每个Resque实例上?或者只有一个知道所有队列和工作人员的应用程序?

Ans:Sinatra监控应用程序为您提供了一个界面,您可以在其中查看所有与工作人员/队列相关的信息,例如正在运行的作业,等待作业,队列和失败的作业等。

  

Resque知道任务何时完成?即监控应用程序是否显示任务正在进行中?或者只是一个工人拿走了它?   Ans:确实如此,基本上resque还维护内部队列来管理所有工作。

答:是的,它会显示有关工作的每个统计数据。

  

显示器应用程序是否显示已完成的任务?即如果任务快速完成,我能否在最近的某个时刻看到该任务已完成?

答:是的,你可以做到 例如,要知道哪些工作人员正在使用Resque.working,同样您可以检查他们的代码库并使用任何东西。


Resque是一个非常强大的库,我们现在使用了一年多。
干杯快乐的编码!!