activerecord-mysql-reconnect 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9ac7822c0f663ad7cf90036be1093e185b6a7510
|
4
|
+
data.tar.gz: 0e47d5cf1f48399f9f120d7596206521ba91be5d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3e02a754713686f67ef46dddb0091c34caf7b43b596048ed5f83543f13093d61dfd5774dad7010a163a9e48474760736a4bec063b1424f6b13b2a95beb50c93b
|
7
|
+
data.tar.gz: 62edd5b7910a1723d334e91bab60e89ffb3f70c2c2886ffae06cee0857c123efb66786652ad73e2d0f67f0dd403acd87c50352b5c7b5cc677c720161d9276366
|
@@ -18,9 +18,10 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
|
21
|
+
# '~> 3.2.14' or '~> 4.0.2'
|
22
|
+
spec.add_dependency 'activerecord'
|
23
|
+
spec.add_dependency 'mysql2'
|
22
24
|
spec.add_development_dependency 'bundler', '~> 1.3'
|
23
25
|
spec.add_development_dependency 'rake'
|
24
26
|
spec.add_development_dependency 'rspec', '>= 2.14.1'
|
25
|
-
spec.add_development_dependency 'mysql2'
|
26
27
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'active_record'
|
2
2
|
require 'active_record/connection_adapters/abstract_mysql_adapter'
|
3
3
|
require 'active_support'
|
4
|
+
require 'mysql2'
|
4
5
|
require 'logger'
|
5
6
|
|
6
7
|
class ActiveRecord::Base
|
@@ -69,15 +70,20 @@ class ActiveRecord::ConnectionAdapters::AbstractMysqlAdapter
|
|
69
70
|
block_with_reconnect = nil
|
70
71
|
retval = nil
|
71
72
|
sql_names = [[sql, name]]
|
73
|
+
orig_transaction = @transaction
|
72
74
|
|
73
75
|
retryable_loop(tries) do |n|
|
74
76
|
begin
|
75
77
|
retval = (block_with_reconnect || block).call(sql_names)
|
76
78
|
break
|
77
|
-
rescue => e
|
79
|
+
rescue ActiveRecord::StatementInvalid, Mysql2::Error => e
|
78
80
|
if not without_retry? and (tries.zero? or n < tries) and e.message =~ Regexp.union(ERROR_MESSAGES)
|
79
81
|
unless block_with_reconnect
|
80
|
-
block_with_reconnect = proc
|
82
|
+
block_with_reconnect = proc do |i|
|
83
|
+
reconnect!
|
84
|
+
@transaction = orig_transaction if orig_transaction
|
85
|
+
block.call(i)
|
86
|
+
end
|
81
87
|
end
|
82
88
|
|
83
89
|
sql_names = merge_transaction(sql, name)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activerecord-mysql-reconnect
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Genki Sugawara
|
@@ -14,16 +14,30 @@ dependencies:
|
|
14
14
|
name: activerecord
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - '>='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: mysql2
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
25
39
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
40
|
+
version: '0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: bundler
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,20 +80,6 @@ dependencies:
|
|
66
80
|
- - '>='
|
67
81
|
- !ruby/object:Gem::Version
|
68
82
|
version: 2.14.1
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: mysql2
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - '>='
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - '>='
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
83
83
|
description: It is the library to reconnect automatically when ActiveRecord is disconnected
|
84
84
|
from MySQL.
|
85
85
|
email:
|