module QueueClassicJobsManager

Public Instance Methods

clear_jobs() click to toggle source
# File activejob/test/support/integration/adapters/queue_classic.rb, line 11
def clear_jobs
  QC::Queue.new("integration_tests").delete_all
end
setup() click to toggle source
# File activejob/test/support/integration/adapters/queue_classic.rb, line 4
def setup
  ENV["QC_DATABASE_URL"] ||= "postgres:///active_jobs_qc_int_test"
  ENV["QC_RAILS_DATABASE"] = "false"
  ENV["QC_LISTEN_TIME"]    = "0.5"
  ActiveJob::Base.queue_adapter = :queue_classic
end
start_workers() click to toggle source
# File activejob/test/support/integration/adapters/queue_classic.rb, line 15
def start_workers
  uri = URI.parse(ENV["QC_DATABASE_URL"])
  user = uri.user || ENV["USER"]
  pass = uri.password
  db   = uri.path[1..-1]
  %x{#{"PGPASSWORD=\"#{pass}\"" if pass} psql -c 'drop database if exists "#{db}"' -U #{user} -t template1}
  %x{#{"PGPASSWORD=\"#{pass}\"" if pass} psql -c 'create database "#{db}"' -U #{user} -t template1}
  QC::Setup.create

  QC.default_conn_adapter.disconnect
  QC.default_conn_adapter = nil
  @pid = fork do
    worker = QC::Worker.new(q_name: "integration_tests")
    worker.start
  end

rescue PG::ConnectionBad
  puts "Cannot run integration tests for queue_classic. To be able to run integration tests for queue_classic you need to install and start postgresql.\n"
  exit
end
stop_workers() click to toggle source
# File activejob/test/support/integration/adapters/queue_classic.rb, line 36
def stop_workers
  Process.kill "HUP", @pid
end