2013-04-05 23 views

Trả lời

84

Để thiết lập lại việc đã xử lý:

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

và thay đổi lại việc thất bại:

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

Để đặt lại thống kê:

Sidekiq::Stats.new.reset

ref: Add reset stats to Web UI summary box and method to API

+0

Điều đó đã thực hiện mẹo, cảm ơn! – Joe

+3

API đã được cập nhật để chấp nhận số liệu thống kê bạn muốn đặt lại [source] (https://github.com/mperham/sidekiq/blob/v4.0.1/lib/sidekiq/api.rb#L95). Vì vậy, bây giờ bạn có thể xóa các số liệu thống kê cụ thể 'Sidekiq :: Stats.new.reset ('failed')' hoặc nhiều số liệu thống kê 'Sidekiq :: Stats.new.reset ('failed', 'processed')'. – tmr08c

+0

Điều này có vẻ như giải pháp được ưa thích hơn và IMO phải là câu trả lời được chọn – Ben

7

Ngoài ra, để thiết lập lại ngày cụ thể trong bảng lịch sử, bạn có thể làm:

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

Và lặp lại cho mỗi ngày bạn muốn xóa. Điều này rất hữu ích nếu bạn có một công việc hoang dã sinh sản và thất bại nhiều lần so với bình thường của bạn và bạn nhận được một biểu đồ lịch sử với một cành lớn trong nó mà làm cho tất cả các giá trị lịch sử bình thường của bạn có hiệu quả một đường bằng phẳng.

1

Trong trường hợp bạn muốn xóa toàn bộ điều cùng với bảng điều khiển lịch sử cho những ngày đặc biệt, đây là đoạn hữu ích:

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 
-3

này cũng sẽ thiết lập lại lịch sử và xóa tất cả mọi thứ từ hàng đợi Redis hoàn toàn

Sidekiq.redis {|c| c.flushdb } 
+1

Đây là một tùy chọn hạt nhân và sẽ thả mọi thứ trong cơ sở dữ liệu Redis đó, không chỉ số liệu thống kê của Sidekiq. Điều đó có nghĩa là bạn sẽ mất bất kỳ công việc Sidekiq mới nào, bất kỳ phiên nào và bất kỳ dữ liệu nào khác mà bạn tình cờ sử dụng Redis. –

+0

Cảm ơn Parker, tôi đã ở giữa một cái gì đó và đã không hoàn thành bài viết nhưng có bạn là 100% chính xác. – user1320651

1

Chỉ cần để bổ sung cho tất cả các câu trả lời tốt, thiết lập lại quầy sử dụng chế độ tương tác ruby, làm điều này vào giao diện điều khiển:

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 
Các vấn đề liên quan