mysql-pause 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README CHANGED
@@ -52,3 +52,49 @@ gem install mysql-pause
52
52
  | 1 |
53
53
  +---+
54
54
  1 row in set (18.01 sec)
55
+
56
+ == Extend MySQL adapter
57
+ === Example code
58
+
59
+ require 'active_record'
60
+ require 'mysql-pause/adapter-ext'
61
+
62
+ ActiveRecord::Base.establish_connection(
63
+ :adapter => 'mysql2',
64
+ :host => '127.0.0.1',
65
+ :port => 13306,
66
+ :username => 'scott',
67
+ :password => 'tiger',
68
+ :database => 'employees',
69
+ :reconnect => true,
70
+ )
71
+
72
+ class Employee < ActiveRecord::Base; end
73
+
74
+ loop do
75
+ employee = Employee.new
76
+ employee.first_name = 'Taro'
77
+ employee.last_name = 'Yamada'
78
+ employee.save!
79
+ sleep 3
80
+ end
81
+
82
+ === Behavior
83
+
84
+ log> DEBUG -- : (0.6ms) BEGIN
85
+ log> DEBUG -- : SQL (0.7ms) INSERT INTO `employees` (`first_name`, `last_name`) VALUES ('Taro', 'Yamada')
86
+ log> DEBUG -- : (0.8ms) COMMIT
87
+ log> DEBUG -- : (0.6ms) BEGIN
88
+
89
+ shell> mpctl pause
90
+ shell> service mysql restart
91
+ shell> mpctl resume
92
+
93
+ log> DEBUG -- : (0.6ms) BEGIN
94
+ (...handle error and reconnect...)
95
+ log> DEBUG -- : Mysql2::Error: %MYSQL_PAUSE%;;1000;;Aborted backend connection: BEGIN
96
+ log> WARN -- : ActiveRecord::StatementInvalid: Mysql2::Error: %MYSQL_PAUSE%;;1000;;Aborted backend connection: BEGIN
97
+ log> DEBUG -- : (0.3ms) BEGIN
98
+ log> DEBUG -- : SQL (2.1ms) INSERT INTO `employees` (`first_name`, `last_name`) VALUES ('Taro', 'Yamada')
99
+ log> DEBUG -- : (0.8ms) COMMIT
100
+
data/bin/mysql-pause CHANGED
@@ -25,6 +25,7 @@ ARGV.options do |parser|
25
25
  parser.on('-A', '--backend-addr=ADDR') {|v| options[:backend_addr] = v }
26
26
  parser.on('-P', '--backend-port=PORT') {|v| options[:backend_port] = v.to_i }
27
27
  parser.on('-i', '--inerval=N' ) {|v| options[:interval] = v.to_i }
28
+ parser.on('-n', '--threads=SIZE' ) {|v| options[:threads] = v.to_i }
28
29
  parser.on('' , '--working-dir=DIR' ) {|v| options[:working_dir] = v }
29
30
  parser.on('' , '--socket=SOCK_FILE' ) {|v| options[:socket] = v }
30
31
 
@@ -1,2 +1,2 @@
1
1
  APP_NAME = 'mysql-pause'
2
- Version = '0.1.3'
2
+ Version = '0.1.4'
@@ -32,6 +32,7 @@ module MysqlPause
32
32
  at_exit { FileUtils.rm_f(@@options[:socket]) }
33
33
 
34
34
  EM.epoll
35
+ EM.threadpool_size = @@options[:threads] if @@options[:threads]
35
36
 
36
37
  EM.run {
37
38
  EM.start_server(
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mysql-pause
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-05-21 00:00:00.000000000 Z
12
+ date: 2013-05-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: eventmachine
@@ -54,7 +54,7 @@ files:
54
54
  - README
55
55
  - bin/mpctl
56
56
  - bin/mysql-pause
57
- - lib/mysql-pause/abstract_mysql_adapter.rb
57
+ - lib/mysql-pause/adapter-ext.rb
58
58
  - lib/mysql-pause/backend.rb
59
59
  - lib/mysql-pause/constants.rb
60
60
  - lib/mysql-pause/error.rb