59

在我的 sidekiq 仪表板中,我在左侧看到一个带有计数器的框

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

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

4

7 回答 7

119

要重置统计信息:

Sidekiq::Stats.new.reset

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

此外,您现在可以清除特定统计信息:

  • 单项统计Sidekiq::Stats.new.reset('failed')
  • 或多个统计数据Sidekiq::Stats.new.reset('failed', 'processed')

(感谢https://stackoverflow.com/users/2475008/tmr08c更新)

于 2013-12-13T10:02:10.870 回答
112

要重置已处理的作业:

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

并重置失败的作业:

Sidekiq.redis {|c| c.del('stat:failed') }
于 2013-04-29T18:12:42.270 回答
11

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

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

并为您想要清除的每一天重复。

如果你有一个疯狂的工作产生和失败的次数比你平时多很多次,并且你得到一个历史图表,其中有一个巨大的尖峰,这使得你所有的常用历史值实际上都是一条平线,这很有用。

于 2015-07-02T13:10:08.183 回答
4

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

于 2019-06-26T18:30:36.080 回答
3

只是为了补充所有好的答案,使用 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
于 2017-10-25T17:47:41.990 回答
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
于 2017-01-05T09:17:48.680 回答
-5

这还将重置历史记录并从 Redis 队列中完全删除所有内容

Sidekiq.redis {|c| c.flushdb }
于 2017-09-27T16:23:29.213 回答