如何查看Resque作业

时间:2014-02-20 10:06:02

标签: ruby-on-rails ruby resque

在我们的Rails应用程序中,我们使用Resque处理后台作业(我们还使用Resque Scheduler和Resque Status)。

我们正在队列中找到未处理的作业,但是我看不到有关它们的任何细节。

如果我使用redis-cli - 我可以提取工作细节:

get "resque:status:bd2209c9......"

这将显示时间戳,它所在的队列,它是uuid和任何参数,但不是类名。如果我在已经运行的工作上做同样的事情,那么我可以看到类名,消息等。

所以有一种方法可以找到等待运行的作业的类名。

感谢。

1 个答案:

答案 0 :(得分:8)

经过一番挖掘:

  • 所有Resque作业都位于每个队列的Redis列表中
  • 使用他们的uuid
  • 实际上没有办法获取列表的元素

虽然您可以查看整个列表(或子集):

# This works for Resque 1.25.0
Resque.redis.lrange('queue:QUEUE_NAME', 0, -1)

将返回一个字符串数组(编码的JSON)。解码第一项:

job = Resque.redis.lrange('queue:QUEUE_NAME', 0, 0).first
h = Resque.decode(job)

然后会给你一个哈希值,但查看列表就足以看到类名了。它帮助我看到的队列非常小。

找到这个可能有更好的方法,但这对我有用。