【问题标题】:How to view a Resque job如何查看 Resque 作业
【发布时间】:2014-03-21 04:44:37
【问题描述】:

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

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

如果我使用 redis-cli - 我可以调出工作详细信息:

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

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

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

谢谢。

【问题讨论】:

  • 你尝试过 resque-web

标签: ruby-on-rails ruby resque


【解决方案1】:

所以经过一番挖掘:

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

然后它会给你一个散列来玩,但是查看列表就足以看到类名。这有助于我查看的队列非常小。

可能有更好的方法来解决这个问题,但这对我有用。

【讨论】:

  • 您也可以使用以下命令获取队列中的第一个作业:Resque.list_range('queue:QUEUE_NAME')
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-19
  • 1970-01-01
  • 1970-01-01
  • 2013-12-04
  • 1970-01-01
  • 1970-01-01
  • 2016-10-10
相关资源
最近更新 更多