在我的 Sidekiq 仪表板中,我看到左侧有一个带有计数器的框。
Processed 168
Failed 111
Busy 0
Scheduled 0
Retries 0
Enqueued 0
我该如何将它们全部重置为0?
在我的 Sidekiq 仪表板中,我看到左侧有一个带有计数器的框。
Processed 168
Failed 111
Busy 0
Scheduled 0
Retries 0
Enqueued 0
我该如何将它们全部重置为0?
重置统计信息:
Sidekiq::Stats.new.reset
此外,您现在可以清除特定的统计信息:
Sidekiq::Stats.new.reset('failed')
清除单个统计信息Sidekiq::Stats.new.reset('failed', 'processed')
清除多个统计信息重置已处理的作业:
Sidekiq.redis {|c| c.del('stat:processed') }
并重置失败的作业:
Sidekiq.redis {|c| c.del('stat:failed') }
此外,要重置历史记录面板中特定的日期,您可以执行以下操作:
Sidekiq.redis {|c| c.del('stat:processed:2015-07-02') }
Sidekiq.redis {|c| c.del('stat:failed:2015-07-02') }
对于您想要清除的每一天重复执行此操作。
如果您有一个产生问题,比您通常更多次地失败的狂野任务,并且在历史图表中出现了大量峰值,使得所有通常的历史值实际上都成为平面线,那么这将非常有用。
补充所有好的答案,使用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
Sidekiq::RetrySet.new.clear
Sidekiq::ScheduledSet.new.clear
Sidekiq::Stats.new.reset
Sidekiq::DeadSet.new.clear
参考来源:https://gist.github.com/wbotelhos/fb865fba2b4f3518c8e533c7487d5354
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
这也将重置历史记录并完全删除Redis队列中的所有内容
Sidekiq.redis {|c| c.flushdb }
Sidekiq::Stats.new.reset('failed')
或多个统计信息,例如Sidekiq::Stats.new.reset('failed', 'processed')
。 - tmr08c