【发布时间】:2013-03-27 22:14:14
【问题描述】:
在我的 sidekiq 仪表板中,我在左侧看到一个带有计数器的框
Processed 168
Failed 111
Busy 0
Scheduled 0
Retries 0
Enqueued 0
如何将它们全部重置为 0?
【问题讨论】:
标签: ruby-on-rails ruby sidekiq
在我的 sidekiq 仪表板中,我在左侧看到一个带有计数器的框
Processed 168
Failed 111
Busy 0
Scheduled 0
Retries 0
Enqueued 0
如何将它们全部重置为 0?
【问题讨论】:
标签: ruby-on-rails ruby sidekiq
重置统计数据:
Sidekiq::Stats.new.reset
参考:Add reset stats to Web UI summary box and method to API
此外,您现在可以清除特定统计数据:
Sidekiq::Stats.new.reset('failed') 的单一统计数据
Sidekiq::Stats.new.reset('failed', 'processed')的多个统计数据
【讨论】:
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
【讨论】:
如果您想删除整个内容以及特定日期的历史记录面板,这里是有用的 sn-p:
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 }
【讨论】: