2013-04-05 59 views

回答

84

要重新處理的作業:

Sidekiq.redis {|c| c.del('stat:processed') } 

和復位失敗的作業:

Sidekiq.redis {|c| c.del('stat:failed') } 
85

要重置統計:

Sidekiq::Stats.new.reset

編號:Add reset stats to Web UI summary box and method to API

+0

這樣做的竅門,謝謝! – Joe 2015-04-30 00:02:57

+3

API已經更新,現在接受你想重置的統計信息[source](https://github.com/mperham/sidekiq/blob/v4.0.1/lib/sidekiq/api.rb#L95)。所以你現在可以清除特定的統計信息'Sidekiq :: Stats.new.reset('failed')'或者多個統計信息'Sidekiq :: Stats.new.reset('failed','processed')'。 – tmr08c 2015-12-30 20:58:03

+0

這似乎是更受歡迎的解決方案,IMO應該是選定的答案 – Ben 2018-02-01 03:50:10

7

而且,在歷史面板具體日期復位,你可以這樣做:

Sidekiq.redis {|c| c.del('stat:processed:2015-07-02') } 
Sidekiq.redis {|c| c.del('stat:failed:2015-07-02') } 

,並重復你要清除每一天。

如果你的野外工作產卵和失敗的次數比平時多出許多倍,那麼這很有用,你會得到一個歷史圖表,其中有一個巨大的峯值,使所有通常的歷史值有效地變成一條平坦線。

1

如果你想刪除整個事情與歷史面板具體日期一起,這裏是有幫助的片段:

from_date = Date.new(2016, 1, 1) 
to_date = Date.today 

Sidekiq.redis do |redis| 
    redis.del("stat:processed") 
    redis.del("stat:failed") 

    (from_date..to_date).each do |date| 
    redis.del("stat:processed:#{date}") 
    redis.del("stat:failed:#{date}") 
    end 
end 
-3

這也將重置歷史和Redis的隊列中完全

刪除一切
Sidekiq.redis {|c| c.flushdb } 
+1

這是一個核選項,它將刪除Redis數據庫中的所有內容,而不僅僅是Sidekiq統計信息。這意味着您將失去任何新的Sidekiq作業,任何會話以及您恰好在使用Redis的任何其他數據。 – 2017-09-27 16:26:41

+0

感謝帕克,我在某件事情的中間,並沒有完成這個職位,但是,你是100%正確的。 – user1320651 2017-09-27 16:32:35

1

只是爲了補充所有很好的答案,重新使用Ruby交互模式下櫃,這樣到控制檯:

irb 
irb(main):001:0> require 'sidekiq/api' 
=> true 
irb(main):002:0> Sidekiq.redis {|c| c.del('stat:processed') } 
=> 1 
irb(main):003:0> Sidekiq.redis {|c| c.del('stat:failed') } 
=> 1