我对设置一个监控服务感兴趣,每当Resque队列中有太多作业(job)时,它都会呼叫我(我有大约6个队列,每个队列的编号都不同).我还想设置一个非常类似的监控服务,当我的队列中超过一定数量的失败作业(job)时,它会提醒我.

我的问题是,在我的redis服务器上,我看到了许多与Resque相关的密钥和混乱.我不一定能直接获得每个队列的作业(job)数或失败作业(job)数.目前有没有一种简单的方法从redis获取这些数据?

推荐答案

是的,考虑到你使用的是Resque gem:

require 'resque'

Resque.info 

将返回一个哈希

e.g/ =>

{
      :pending => 54338,
      :processed => 12772,
      :queues => 2,
      :workers => 0,
      :working => 0,
      :failed => 8761,
      :servers => [
      [0] "redis://192.168.1.10:6379/0"
    ],
    :environment => "development"
}

因此,要获得失败的作业(job)计数,只需使用:

Resque.info[:failed]

which would give => 8761 #in my example

要获取队列,请使用:

Resque.queues

这将返回一个数组

e.g./ =>

[
    [0] "superQ",
    [1] "anotherQ"
]

然后,您可以找到每个队列的作业(job)数:

Resque.size(queue_name)

e、 g/Resque.size("superQ")Resque.size(Resque.queues[0]).....

Ruby-on-rails相关问答推荐

未捕获语法错误:try 编辑TRIX时,请求的模块未在Rails 7.1中提供名为默认的导出(在youtube.js:1:8)

如何修改使用Google Cloud App Engine部署rails 7应用程序的步骤

Gemfile需要较新版本的依赖项

为什么在使用 Ruby on Rails 时我的徽标没有出现在 Bootstrap 导航栏中?

序列化来自关联的不可变数据是个好主意吗?

在单个继承表和另一个表中的类之间建立多对多关联

从 rails 5 迁移到 rails 6

Rails 连接并包含连接表中的列

如何使用 Vim 插入 ERB 标签?

Ruby/Rails 中的类方法与常量

耙路由错误缺少:路由定义上的操作键

jQuery ajax 请求不会触发 Rails 控制器的 JS 响应?

模型验证中的 Rails 国际化 (I18n):可能与否?

不带参数的 request.fullpath

什么是Ruby 用于 BESIDES 轨道?

如何在 rspec 测试中输出变量?

form_for 未定义的方法 `user_path'

在 ruby​​ on rails 中创建自定义 html 助手

如何在 Rails 中设置路由的默认格式?

在 GIT 中处理 Rails db/schema.rb 文件的正确方法是什么?