public
Description: Async MySQL driver for Ruby/Eventmachine
Homepage:
Clone URL: git://github.com/tmm1/em-mysql.git
em-mysql / README
100644 40 lines (24 sloc) 1.051 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Async MySQL driver for Ruby/EventMachine
  (c) 2008 Aman Gupta (tmm1)
 
 
Requires mysqlplus.
 
  require 'em/mysql'
 
  # alias SQL for simpler syntax
 
  SQL = EventedMysql
  def SQL(query, &blk) SQL.select(query, &blk) end
 
  
  # setup connection details and allow 4 connections to the server
 
  SQL.settings.update :host => 'localhost',
                      :port => 3306,
                      :database => 'test',
                      :connections => 4
  
 
  # use 4 connections to execute queries in parallel
 
  SQL('select sleep(0.25)'){ p 'done' }
  SQL('select sleep(0.25)'){ p 'done' }
  SQL('select sleep(0.25)'){ p 'done' }
  SQL('select sleep(0.25)'){ p 'done' }
 
Also includes a sequel async wrapper
 
  require 'sequel'
  require 'sequel/async'
 
  DB = Sequel.connect(:adapter => 'mysql', :user => 'root', :database => 'test', ...)
  EventedMysql.settings.update(..., :on_error => proc{|e| log 'error', e })
 
  DB[:table].where(:field => 'value').async_update(:field => 'new value')
 
For more info, see the comments in lib/sequel/async.rb