Merge pull request #12161 from mkllnk/reset

Add rake task to reset queued jobs
This commit is contained in:
David Cook
2024-02-16 12:17:19 +11:00
committed by GitHub
3 changed files with 55 additions and 0 deletions

View File

@@ -1,6 +1,8 @@
# ENV vars for the test environment
# Override locally with `.env.test.local`
OFN_REDIS_JOBS_URL="redis://localhost:6379/2"
SECRET_TOKEN="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
STRIPE_INSTANCE_SECRET_KEY="bogus_key"
STRIPE_CUSTOMER="bogus_customer"

27
lib/tasks/reset.rake Normal file
View File

@@ -0,0 +1,27 @@
# frozen_string_literal: true
require 'sidekiq/api'
namespace :ofn do
task reset: :environment do
Rake::Task["ofn:reset_sidekiq"].invoke
Rake::Task["db:reset"].invoke
end
task reset_sidekiq: :environment do
# 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 all queues
Sidekiq::Queue.all.map(&:clear)
end
end

View File

@@ -0,0 +1,26 @@
# frozen_string_literal: true
require 'spec_helper'
require 'rake'
describe "reset.rake" do
before(:all) do
Rake.application.rake_require("tasks/reset")
Rake::Task.define_task(:environment)
end
it "clears job queues" do
job_class = Class.new do
include Sidekiq::Job
end
job_class.perform_async
queue = Sidekiq::Queue.all.first # rubocop:disable Rails/RedundantActiveRecordAllMethod
expect {
Rake.application.invoke_task "ofn:reset_sidekiq"
}.to change {
queue.count
}.to(0)
end
end