Guest User

Untitled

a guest
May 27th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.62 KB | None | 0 0
  1. require 'rubygems'
  2. require 'sequel'
  3. require 'fileutils'
  4. require 'logger'
  5.  
  6. db_file = '/tmp/delete_me.sqlite'
  7. FileUtils.rm( db_file ) if File.exists?( db_file )
  8. DB = Sequel.sqlite( db_file )
  9.  
  10. logger = Logger.new( "/tmp/threaded_test.log" )
  11. DB.loggers << logger
  12.  
  13. DB.create_table :things do
  14. primary_key :id
  15. Integer :n
  16. Time :created_at
  17. end
  18.  
  19. class Thing < Sequel::Model
  20. plugin :timestamps
  21. end
  22.  
  23. N = 25
  24.  
  25. things = (0..N).map do |n|
  26. Thing.create( :n => n )
  27. end
  28.  
  29. threads = [0,1].map do |i|
  30. Thread.new do
  31. i.step(N, 2) do |j|
  32. thing = things[j]
  33. thing.n += 1
  34. thing.save
  35. end
  36. end
  37. end
  38.  
  39. threads.each {|t| t.join }
Add Comment
Please, Sign In to add comment