Guest User

Untitled

a guest
May 21st, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Rails 0.82 KB | None | 0 0
  1. #coding=utf-8
  2. require 'sequel'
  3. require 'singleton'
  4.  
  5. class Database
  6.   include Singleton
  7.   attr_reader :conn
  8.  
  9.   def initialize
  10.     servers =  {
  11.         :shard_1 => {:database=>'part01'},
  12.         :shard_2 => {:database=>'part02'}
  13.     }
  14.     @conn = Sequel.postgres(:host =>'localhost', :user => '', :password => '', :database=>'part01', :servers => servers, :single_threaded => :true, :max_connections => 1)
  15.   end
  16.  
  17. end
  18.  
  19.  
  20.  
  21. pids = []
  22. 2.times do
  23.   pids << fork do
  24.     Database.instance.conn.transaction(:server => :shard_2) do |c|
  25.       Database.instance.conn['SELECT pg_sleep(5);'].server(:shard_2).single_value
  26.     end
  27.     Database.instance.conn.transaction(:server => :shard_2) do |c|
  28.       Database.instance.conn['SELECT pg_sleep(5);'].server(:shard_2).single_value
  29.     end
  30.   end
  31. end
  32. pids.each {|p| Process.wait(p)}
Add Comment
Please, Sign In to add comment