如何重置sidekiq计数器?

Ago*_*noX 49 ruby ruby-on-rails sidekiq

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

Processed 168
Failed 111
Busy 0
Scheduled 0
Retries 0
Enqueued 0
Run Code Online (Sandbox Code Playgroud)

如何将它们全部重置为0?

Pau*_*een 103

要重置统计信息:

Sidekiq::Stats.new.reset

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

  • API已更新为现在接受您要重置的统计信息[来源](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')`. (8认同)

Rob*_*ros 98

要重置已处理的作业:

Sidekiq.redis {|c| c.del('stat:processed') }
Run Code Online (Sandbox Code Playgroud)

并重置失败的作业:

Sidekiq.redis {|c| c.del('stat:failed') }
Run Code Online (Sandbox Code Playgroud)


小智 10

此外,要重置历史记录面板中的特定日期,您可以执行以下操作:

Sidekiq.redis {|c| c.del('stat:processed:2015-07-02') }
Sidekiq.redis {|c| c.del('stat:failed:2015-07-02') }
Run Code Online (Sandbox Code Playgroud)

并重复你想要清除的每一天.

如果你有一个疯狂的工作产生并且失败的次数超过平时,这是很有用的,你会得到一个带有大量尖峰的历史图表,这使得你所有通常的历史值有效地变成一条平线.


Pau*_*tor 7

只是为了补充所有好的答案,使用 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
Run Code Online (Sandbox Code Playgroud)


小智 5

1.清除重试设置

Sidekiq::RetrySet.new.clear

2. 清除预定作业

Sidekiq::ScheduledSet.new.clear

3. 清除“已处理”和“失败”作业

Sidekiq::Stats.new.reset

3. 清除“死亡”职位统计数据

Sidekiq::DeadSet.new.clear

字体:https ://gist.github.com/wbotelhos/fb865fba2b4f3518c8e533c7487d5354