2014-02-20 108 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

相關問題