我如何重置我的sidekiq计数器?

在我的sidekiq仪表板中,我在左边看到一个带有计数器的盒子

Processed 168 Failed 111 Busy 0 Scheduled 0 Retries 0 Enqueued 0 

我如何将它们重置为0?

重置已处理的作业:

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

并重置失败的作业:

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

重置统计信息:

Sidekiq::Stats.new.reset

ref: 将重置统计信息添加到Web UI摘要框和方法到API

另外,要重置历史logging面板中的特定date,您可以执行以下操作:

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

并重复每一天你想清除。

这是非常有用的,如果你有一个疯狂的工作产卵和失败多次比平常多,你得到一个历史graphics与大量的穗,使所有你的平常历史价值有效地平坦线。

如果你想删除整个事情与历史logging面板的具体date,这里是有用的片段:

 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 

只是为了补充所有的好的答案,使用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 

这也将重置历史logging,并完全从Redis队列中删除所有内容

 Sidekiq.redis {|c| c.flushdb }