mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-03-01 02:03:22 +00:00
Add rake task to reset queued jobs
Please note that the spec is using Redis as Sidekiq does. This revealed that Sidekiq wasn't set up for jobs in the test environment properly.
This commit is contained in:
@@ -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
27
lib/tasks/reset.rake
Normal 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
|
||||
26
spec/lib/tasks/reset_spec.rb
Normal file
26
spec/lib/tasks/reset_spec.rb
Normal 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
|
||||
Reference in New Issue
Block a user