Sha256: fd01f87720e8d6e68a59d3d2e7f141c95cb6cea4e591d681dbefaef11e3005cc

Contents?: true

Size: 888 Bytes

Versions: 113

Compression:

Stored size: 888 Bytes

Contents

# frozen_string_literal: true

require 'bundler/setup'
require 'polyphony/adapters/postgres'

PGOPTS = {
  host:     '/tmp',
  user:     'reality',
  password: nil,
  dbname:   'reality',
  sslmode:  'require'
}.freeze

DBPOOL = Polyphony::ResourcePool.new(limit: 16) { PG.connect(PGOPTS) }

def get_records(db)
  db.query('select pg_sleep(0.001) as test')
  # puts "got #{res.ntuples} records: #{res.to_a}"
rescue StandardError => e
  puts "got error: #{e.inspect}"
  puts e.backtrace.join("\n")
end

CONCURRENCY = ARGV.first ? ARGV.first.to_i : 10
puts "concurrency: #{CONCURRENCY}"

DBPOOL.preheat!
t0 = Time.now
count = 0

fibers = CONCURRENCY.times.map do
  spin do
    loop do
      DBPOOL.acquire do |db|
        get_records(db)
        count += 1
      end
    end
  end
end
sleep 5
puts "count: #{count} query rate: #{count / (Time.now - t0)} queries/s"
fibers.each(&:interrupt)

Version data entries

113 entries across 113 versions & 1 rubygems

Version Path
polyphony-1.6 examples/adapters/pg_pool.rb
polyphony-1.5 examples/adapters/pg_pool.rb
polyphony-1.4 examples/adapters/pg_pool.rb
polyphony-1.3 examples/adapters/pg_pool.rb
polyphony-1.2.1 examples/adapters/pg_pool.rb
polyphony-1.2 examples/adapters/pg_pool.rb
polyphony-1.1.1 examples/adapters/pg_pool.rb
polyphony-1.1 examples/adapters/pg_pool.rb
polyphony-1.0.2 examples/adapters/pg_pool.rb
polyphony-1.0.1 examples/adapters/pg_pool.rb
polyphony-1.0 examples/adapters/pg_pool.rb
polyphony-0.99.6 examples/adapters/pg_pool.rb
polyphony-0.99.5 examples/adapters/pg_pool.rb
polyphony-0.99.4 examples/adapters/pg_pool.rb
polyphony-0.99.3 examples/adapters/pg_pool.rb
polyphony-0.99.2 examples/adapters/pg_pool.rb
polyphony-0.99.1 examples/adapters/pg_pool.rb
polyphony-0.99 examples/adapters/pg_pool.rb
polyphony-0.98 examples/adapters/pg_pool.rb
polyphony-0.97 examples/adapters/pg_pool.rb