2013-04-05 15 views

risposta

84

Per ripristinare i lavori elaborati:

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

e per ripristinare i processi non riusciti:

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

Per ripristinare le statistiche:

Sidekiq::Stats.new.reset

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

+0

Questo ha fatto il trucco, grazie! – Joe

+3

L'API è stata aggiornata per accettare quali statistiche si desidera ripristinare [origine] (https://github.com/mperham/sidekiq/blob/v4.0.1/lib/sidekiq/api.rb#L95). Ora puoi cancellare le statistiche specifiche 'Sidekiq :: Stats.new.reset ('failed')' o multiple stats 'Sidekiq :: Stats.new.reset ('failed', 'processed')'. – tmr08c

+0

Questa sembra la soluzione più preferita e IMO dovrebbe essere la risposta selezionata – Ben

7

Inoltre, per azzerare giorni specifici nel pannello storia, si può fare:

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

e ripetere per ogni giorno che si desidera cancellare.

Questo è utile se si genera un lavoro selvaggio generando e fallendo molte volte di più del solito e si ottiene un grafico di storia con un picco enorme in esso che rende tutti i valori di cronologia abituale in modo efficace una linea piatta.

1

Nel caso in cui si desidera eliminare il tutto con il pannello Cronologia per date specifiche, qui è il frammento di utili:

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

Questo sarà anche resettare la storia e cancellare tutto dalla coda Redis completamente

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

Questa è un'opzione nucleare e farà cadere tutto in quel database Redis, non solo le statistiche di Sidekiq. Ciò significa che perderesti qualsiasi nuovo lavoro di Sidekiq, qualsiasi sessione e qualsiasi altro dato per cui usi Redis. –

+0

Grazie Parker, ero nel mezzo di qualcosa e non avevo finito il post ma sì sei corretto al 100%. – user1320651

1

Giusto per completare tutte le buone risposte, azzerare i contatori che utilizzano la modalità interattiva rubino, facendo questo in console:

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 
Problemi correlati