module ResqueJobsManager

Public Instance Methods

can_run?() click to toggle source
# File activejob/test/support/integration/adapters/resque.rb, line 43
def can_run?
  begin
    Resque.redis.client.connect
  rescue
    return false
  end
  true
end
clear_jobs() click to toggle source
# File activejob/test/support/integration/adapters/resque.rb, line 14
def clear_jobs
  Resque.queues.each { |queue_name| Resque.redis.del "queue:#{queue_name}" }
  Resque.redis.keys("delayed:*").each  { |key| Resque.redis.del "#{key}" }
  Resque.redis.del "delayed_queue_schedule"
end
setup() click to toggle source
# File activejob/test/support/integration/adapters/resque.rb, line 4
def setup
  ActiveJob::Base.queue_adapter = :resque
  Resque.redis = Redis::Namespace.new "active_jobs_int_test", redis: Redis.connect(url: "redis://:password@127.0.0.1:6379/12", thread_safe: true)
  Resque.logger = Quails.logger
  unless can_run?
    puts "Cannot run integration tests for resque. To be able to run integration tests for resque you need to install and start redis.\n"
    exit
  end
end
start_workers() click to toggle source
# File activejob/test/support/integration/adapters/resque.rb, line 20
def start_workers
  @resque_thread = Thread.new do
    w = Resque::Worker.new("integration_tests")
    w.term_child = true
    w.work(0.5)
  end
  @scheduler_thread = Thread.new do
    Resque::Scheduler.configure do |c|
      c.poll_sleep_amount = 0.5
      c.dynamic = true
      c.quiet = true
      c.logfile = nil
    end
    Resque::Scheduler.master_lock.release!
    Resque::Scheduler.run
  end
end
stop_workers() click to toggle source
# File activejob/test/support/integration/adapters/resque.rb, line 38
def stop_workers
  @resque_thread.kill
  @scheduler_thread.kill
end