ebisu_connection 0.0.1 → 0.0.2
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.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f7397a17d9b203b5278468bc1f0bbea7a315d133
|
4
|
+
data.tar.gz: 4d5904d664ec3ec2f05e4e2d6f327b0e59f683cf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3940807ea924e4720501d3070c1a9cd51846a1f871c4923d8206770ca0435e092b2ddf3969e5210ca8c5fdb30250b215475d8c88e307950ffbff88c280b09785
|
7
|
+
data.tar.gz: 945d266756d44550d10bb26884d5a37978d022980757b6f9e07255c0de27a162a8d26c2674e238a5f5238bb434e6da8fa08d6a061b86f82f2afe1b10b0a96b27
|
data/ebisu_connection.gemspec
CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
21
|
spec.add_dependency 'activerecord', '>= 3.2.0'
|
22
|
-
spec.add_dependency 'fresh_connection', '>= 0.1.
|
22
|
+
spec.add_dependency 'fresh_connection', '>= 0.1.6'
|
23
23
|
|
24
24
|
spec.add_development_dependency "bundler", "~> 1.3"
|
25
25
|
spec.add_development_dependency "rake"
|
@@ -22,6 +22,7 @@ module EbisuConnection
|
|
22
22
|
end
|
23
23
|
|
24
24
|
def put_aside!
|
25
|
+
return if check_own_connection
|
25
26
|
return unless @file_mtime
|
26
27
|
|
27
28
|
now = Time.now
|
@@ -32,11 +33,13 @@ module EbisuConnection
|
|
32
33
|
mtime = File.mtime(self.class.slaves_file)
|
33
34
|
return if @file_mtime == mtime
|
34
35
|
|
35
|
-
|
36
|
+
reserve_release_all_connection
|
37
|
+
check_own_connection
|
36
38
|
end
|
37
39
|
|
38
40
|
def clear_all_connection!
|
39
41
|
@mutex.synchronize do
|
42
|
+
@slaves ||= {}
|
40
43
|
@slaves.values.each do |s|
|
41
44
|
s.all_disconnect!
|
42
45
|
end
|
@@ -49,6 +52,31 @@ module EbisuConnection
|
|
49
52
|
|
50
53
|
private
|
51
54
|
|
55
|
+
def check_own_connection
|
56
|
+
ret = false
|
57
|
+
@mutex.synchronize do
|
58
|
+
@slaves ||= {}
|
59
|
+
if s = @slaves[current_thread_id]
|
60
|
+
if ret = s.reserved_release?
|
61
|
+
s.all_disconnect!
|
62
|
+
@slaves.delete(current_thread_id)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
ret
|
67
|
+
end
|
68
|
+
|
69
|
+
def reserve_release_all_connection
|
70
|
+
@mutex.synchronize do
|
71
|
+
@slaves ||= {}
|
72
|
+
@slaves.values.each do |s|
|
73
|
+
s.reserve_release_connection!
|
74
|
+
end
|
75
|
+
@slave_conf = nil
|
76
|
+
@spec = nil
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
52
80
|
def slaves
|
53
81
|
@mutex.synchronize do
|
54
82
|
@slaves ||= {}
|
@@ -65,9 +65,18 @@ module EbisuConnection
|
|
65
65
|
end
|
66
66
|
|
67
67
|
def all_disconnect!
|
68
|
+
@reserve_release = nil
|
68
69
|
@slaves.each {|s| s.disconnect!}
|
69
70
|
end
|
70
71
|
|
72
|
+
def reserve_release_connection!
|
73
|
+
@reserve_release = true
|
74
|
+
end
|
75
|
+
|
76
|
+
def reserved_release?
|
77
|
+
!!@reserve_release
|
78
|
+
end
|
79
|
+
|
71
80
|
private
|
72
81
|
|
73
82
|
def get_gcd(list)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ebisu_connection
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- tsukasaoishi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-12-
|
11
|
+
date: 2013-12-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - '>='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.1.
|
33
|
+
version: 0.1.6
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - '>='
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.1.
|
40
|
+
version: 0.1.6
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|