如何查看Resque任务

4

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

我们遇到了未被处理的队列作业,但我无法看到任何有关它们的详细信息。

如果我使用redis-cli,我可以查看作业的详细信息:

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

这将显示时间戳、所在队列、UUID和任何参数,但不包括类名。如果我对已经运行的作业执行相同的操作,那么我可以看到类名、消息等。

那么有没有办法找到等待运行的作业的类名呢?

谢谢。


你尝试过使用 Resque-web 吗? - Viren
1个回答

14

所以经过一番探索:

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

然后,这将为您提供一个哈希值以供操作,但仅查看列表就足以看到类名。幸运的是,我要查看的队列非常小,这很有帮助。

可能有更好的方法找到这个信息,但这对我起作用了。


3
您可以使用以下代码获取队列中的第一份工作:Resque.list_range('queue:QUEUE_NAME')。 - nimblegorilla

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接