diff --git a/lib/tasks/sidekiq_tasks.rake b/lib/tasks/sidekiq_tasks.rake new file mode 100644 index 000000000..a984b6d68 --- /dev/null +++ b/lib/tasks/sidekiq_tasks.rake @@ -0,0 +1,17 @@ +namespace :sidekiq do + desc "Clear ActionCableJobs from sidekiq's critical queue" + task clear_action_cable_broadcast_jobs: :environment do + queue_name = 'critical' + queue = Sidekiq::Queue.new(queue_name) + jobs_cleared = 0 + + queue.each do |job| + if job['wrapped'] == 'ActionCableBroadcastJob' + job.delete + jobs_cleared += 1 + end + end + + puts "Cleared #{jobs_cleared} ActionCableBroadcastJob(s) from the #{queue_name} queue." + end +end