Add a threaded example as well
This commit is contained in:
parent
9a63a587c0
commit
9f19b958b0
20
examples/threaded.rb
Normal file
20
examples/threaded.rb
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# encoding: utf-8
|
||||||
|
|
||||||
|
$LOAD_PATH.unshift 'lib'
|
||||||
|
require 'mysql2'
|
||||||
|
require 'timeout'
|
||||||
|
|
||||||
|
threads = []
|
||||||
|
# Should never exceed worst case 3.5 secs across all 20 threads
|
||||||
|
Timeout.timeout(3.5) do
|
||||||
|
20.times do
|
||||||
|
threads << Thread.new do
|
||||||
|
overhead = rand(3)
|
||||||
|
puts ">> thread #{Thread.current.object_id} query, #{overhead} sec overhead"
|
||||||
|
# 3 second overhead per query
|
||||||
|
Mysql2::Client.new(:host => "localhost", :username => "root").query("SELECT sleep(#{overhead}) as result")
|
||||||
|
puts "<< thread #{Thread.current.object_id} result, #{overhead} sec overhead"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
threads.each{|t| t.join }
|
||||||
|
end
|
Loading…
Reference in New Issue
Block a user