Skip to content

Instantly share code, notes, and snippets.

@tmm1
Created February 4, 2009 23:43
Show Gist options
  • Select an option

  • Save tmm1/58429 to your computer and use it in GitHub Desktop.

Select an option

Save tmm1/58429 to your computer and use it in GitHub Desktop.
require 'rubygems'
require 'sinatra'
# eventmachine/thin
require 'eventmachine'
require 'thin'
# mysql
require 'mysqlplus'
# single threaded
# DB = Mysql.connect
# fibered
require 'neverblock'
require 'never_block/servers/thin'
require 'neverblock-mysql'
class Thin::Server
def fiber_pool() @fiber_pool ||= NB::Pool::FiberPool.new(20) end
end
DB = NB::DB::PooledDBConnection.new(20){ NB::DB::FMysql.connect }
# threaded
# def (Sinatra::Application).deferred?(env) true end
# class Mysql
# alias :sync_query :query
# alias :query :async_query
# end
#
# require 'sequel_core'
# DB = Sequel::ConnectionPool.new(:max_connections => 20){ Mysql.connect }
# def DB.query sql
# hold do |conn|
# conn.query(sql)
# end
# end
disable :reload
get '/' do
4.times do
DB.query('select sleep(0.25)')
end
'done'
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment