2014-02-20 73 views
1

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

我们在队列中找到了未处理的工作,但是我看不到有关它们的任何详细信息。

如果我使用Redis的-CLI - 我可以拉起来的工作细节:

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

,它会显示时间戳,什么排队它在,它的UUID和任何参数,但不是类名。如果我在已经运行的工作上做同样的事情,那么我可以看到班级名称,消息等。

那么有没有一种方法可以找到正在等待运行的作业的类名。

谢谢。

+0

您是否尝试过resque-web – Viren

回答

5

所以经过一些挖掘:

  • 所有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) 

然后会给你一个哈希一起玩,但看着名单是不够看的类名。这有助于我看到的队列非常小。

可能有更好的方法来发现这一点,但这对我有用。

+1

您也可以通过以下操作获取队列中的第一份工作:Resque.list_range('queue:QUEUE_NAME') – nimblegorilla

相关问题