Comment effacer tous les emplois de Sidekiq?

J’utilise sidekiq pour les tâches de fond dans l’application Rails. Maintenant, le nombre d’emplois devient plus important, alors je veux effacer tous les emplois. J’ai essayé la commande suivante dans la console

Sidekiq::Queue.new.clear 

mais il donnait l’erreur suivante.

 NameError: uninitialized constant Sidekiq::Queue 

Comment puis-je effacer tous les emplois de sidekiq?

    Selon ce problème sur Github: https://github.com/mperham/sidekiq/issues/1732 vous devez maintenant

     require 'sidekiq/api' 

    Vous pouvez faire comme il est dit sur la question 1077 ou comme rapporté dans ce blog à noobsippets

    Les deux suggèrent que nous faisons ce qui suit et que nous pouvons le faire sur la console des rails:

    Sidekiq.redis { |conn| conn.flushdb }

    Effacer les commandes Sidekiq Jobs:

     require 'sidekiq/api' # Clear retry set Sidekiq::RetrySet.new.clear # Clear scheduled jobs Sidekiq::ScheduledSet.new.clear # Clear 'Dead' jobs statistics Sidekiq::DeadSet.new.clear # Clear 'Processed' and 'Failed' jobs statistics Sidekiq::Stats.new.reset # Clear specific queue stats = Sidekiq::Stats.new stats.queues # => {"main_queue"=>25, "my_custom_queue"=>1} queue = Sidekiq::Queue.new('my_custom_queue') queue.count queue.clear 

    À partir de la dernière version de Sidekiq, il suffit de faire sauter:

     require 'sidekiq/api' q = Sidekiq::Queue.new q.💣 

    Oui, la commande pour effacer tout est littéralement une emoji de bombe. Sidekiq::RetrySet également pour Sidekiq::RetrySet .

    Ou si vous n’êtes pas amusant, vous pouvez utiliser q.clear

     redis-cli flushdb 

    Vous pouvez également utiliser redis-cli flushall

    Utilisez le coureur Rails dans une ligne

     rails runner 'Sidekiq.redis { |conn| conn.flushdb }'