管理resque工作的最佳方法是什么?

时间:2016-06-11 05:42:08

标签: ruby-on-rails resque god

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

  • resque pool
  • 与神的resque pool

如果我能独自管理上帝的工人,为什么我需要resque pool?

2 个答案:

答案 0 :(得分:1)

Resque旨在处理后台作业,基本上用于处理在较短时间内保留在队列中的作业。
它成为延迟工作的替代品。当你的后台工作增加时,你应该选择Resque 在讨论监控之前,我会谈谈Resque的工作原理。

  1. Resque有Redis作为后端,这是一个In内存数据库, 将redis作为后端使其更快。
  2. Resque拥有将取出作业并执行它们的进程,工作人员完成工作 并分叉一个将执行工作并退出的孩子。通常如此 每个作业一个分支是Resque默认提供的。

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

  4. 为什么我们需要它以及何时:人们的要求就像一个工人每个叉子多个工作。 人们想要这些东西,所以这些插件很有用。

    • Resque Pool:是一个用于管理resque工作池的守护进程。有了 简单的配置文件,它为您管理您的工作人员,启动 每种工人类型的适当工人数量。 因此,您可以轻松管理您的工作人员。
    • 上帝也在那里作为监控你的工人的工具,基本上所有这些都是为了增强现有的Resque功能。
    • 您还可以查找Resque-web,它是用于监控Resque系统的门户网站:

    您可以关注给定链接哪些对我有帮助: Redis Persistence:http://redis.io/topics/persistence

    Resis如何与Redis配合使用:http://girders.org/blog/2011/10/30/how-queuing-with-resque-works/

    Resque-web: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-scheduler:https://github.com/resque/resque-scheduler

    用于管理员工的Resque-pool:https://github.com/nevans/resque-pool

    Resque-multi-jobs-fork:https://github.com/stulentsev/resque-multi-job-forks

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

答案 1 :(得分:-1)

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

由于作业性质是异步的,这可能意味着您在某些时候同时请求多个作业。由于CPU限制,这些作业将找到忙碌的CPU并等待或失败。

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

上帝是一个守护进程监控工具。它将监视作业' server'允许接受工作,但不一定处理失败,或按照他们进入的顺序处理工作等等。

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