Class: SidekiqAlive::CleanupQueues

Inherits:
Object
  • Object
show all
Includes:
Sidekiq::Job
Defined in:
app/sidekiq/sidekiq_alive/cleanup_queues.rb

Instance Method Summary collapse

Instance Method Details

#performObject



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'app/sidekiq/sidekiq_alive/cleanup_queues.rb', line 6

def perform
  # Get all hostnames of Sidekiq processes
  processes = Sidekiq::ProcessSet.new

  vsp_env = Settings.vsp_environment
  current_env = vsp_env == 'development' ? 'dev' : vsp_env
  hostname_suffix = "sidekiq_alive-#{current_env}-api.va.gov"
  if current_env == 'production'
    hostname_suffix = 'sidekiq_alive-api.va.gov' # No env - api.va.gov NOT production-api.va.gov
  end

  # list of Sidekiq hostnames
  hostnames = processes.map { |p| "#{p['hostname']}_#{hostname_suffix}" }

  # Find all Sidekiq Alive queues
  queues = Sidekiq::Queue.all

  queues.each do |queue|
    next unless queue.name.starts_with? 'vets-api-sidekiq'

    unless hostnames.include?(queue.name)
      queue.clear
      Rails.logger.debug "Cleared queue #{queue.name}"
    end
  end
end