在我的 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
参考:将重置统计信息添加到 Web UI 摘要框和 API 方法
此外,您现在可以清除特定统计信息:
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') }
并为您想要清除的每一天重复。
如果你有一个疯狂的工作产生和失败的次数比你平时多很多次,并且你得到一个历史图表,其中有一个巨大的尖峰,这使得你所有的常用历史值实际上都是一条平线,这很有用。
Sidekiq::RetrySet.new.clear
Sidekiq::ScheduledSet.new.clear
Sidekiq::Stats.new.reset
Sidekiq::DeadSet.new.clear
字体:https ://gist.github.com/wbotelhos/fb865fba2b4f3518c8e533c7487d5354
只是为了补充所有好的答案,使用 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
如果您想删除整个内容以及特定日期的历史记录面板,以下是有用的片段:
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 }