bellbro 0.2.1 → 0.2.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 +4 -4
- data/lib/bellbro/initialize.rb +46 -9
- data/lib/bellbro/redis_pool.rb +3 -4
- data/lib/bellbro/settings.rb +4 -18
- data/lib/bellbro/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1ddf069f8fb7bf7c4cb1d241cbbaf0071605de1f
|
4
|
+
data.tar.gz: 1acbf9a7c2014a9c5bd08865555690c73b1b9050
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e9d3ed63c20286ba8dadd89324fadfd0acf4b246bfd60b83df84ff55405c409c89e871b798db87b193acf30279deff3ab36950b74dd1fdff89f54fc3cb23b684
|
7
|
+
data.tar.gz: 3cfd2c21df9e06166be02c4567e0a64d11b19f92c076e6e502f0df09bffadfa7a096356d0799a60428cbd3fa50f6e18c13a368a356502cde962593fc7cefe366
|
data/lib/bellbro/initialize.rb
CHANGED
@@ -3,22 +3,59 @@ module Bellbro
|
|
3
3
|
return unless defined?(Rails)
|
4
4
|
filename = "#{Rails.root}/config/redis.yml"
|
5
5
|
return unless File.exists?(filename)
|
6
|
-
config = YAML.load_file(filename)[Rails.env]
|
6
|
+
config = YAML.load_file(filename)[Rails.env].symbolize_keys
|
7
7
|
configure_bellbro(config)
|
8
|
+
setup_pool(config)
|
8
9
|
end
|
9
10
|
|
10
11
|
def self.configure_bellbro(config)
|
11
|
-
|
12
|
-
|
13
|
-
config
|
14
|
-
|
15
|
-
|
12
|
+
redis_config = ThreadSafe::Cache.new
|
13
|
+
|
14
|
+
config.each do |name, c|
|
15
|
+
base_url = Figaro.env.send c['url'].downcase
|
16
|
+
db = c['database']
|
17
|
+
url = generate_full_url(base_url, db)
|
18
|
+
|
19
|
+
redis_config[name] = {
|
20
|
+
size: c['pool'],
|
21
|
+
url: url,
|
22
|
+
database: db,
|
23
|
+
timeout: c['timeout'] || 5,
|
24
|
+
network_timeout: c['network_timeout'] || 5
|
25
|
+
}
|
26
|
+
end
|
27
|
+
|
28
|
+
Bellbro::Settings.configure do |con|
|
29
|
+
con.redis_config = redis_config
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.setup_pool(config)
|
34
|
+
redis_pool = ThreadSafe::Cache.new
|
35
|
+
redis_config = Bellbro::Settings.redis_config
|
36
|
+
|
37
|
+
config.each_key do |name|
|
38
|
+
next if name == :sidekiq
|
39
|
+
puts "# Configuring pool #{name} with size #{redis_config[name][:size]} on #{redis_config[name][:url]}"
|
40
|
+
redis_pool[name] = ConnectionPool.new(
|
41
|
+
redis_config[name].slice(:size, :timeout)
|
42
|
+
) do
|
43
|
+
Redis.new(
|
44
|
+
redis_config[name].slice(:url, :network_timeout)
|
45
|
+
)
|
46
|
+
end
|
16
47
|
end
|
17
48
|
|
18
49
|
Bellbro::Settings.configure do |con|
|
19
|
-
con.
|
20
|
-
|
21
|
-
|
50
|
+
con.redis_pool = redis_pool
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def self.generate_full_url(base_url, db)
|
55
|
+
if base_url[-1,1] == "/"
|
56
|
+
"#{base_url}#{db}"
|
57
|
+
else
|
58
|
+
"#{base_url}/#{db}"
|
22
59
|
end
|
23
60
|
end
|
24
61
|
end
|
data/lib/bellbro/redis_pool.rb
CHANGED
@@ -15,15 +15,14 @@ module Bellbro
|
|
15
15
|
|
16
16
|
def with_connection
|
17
17
|
retryable(sleep: 0.5) do
|
18
|
-
|
19
|
-
c.select(model_db)
|
18
|
+
model_pool.with do |c|
|
20
19
|
yield c
|
21
20
|
end
|
22
21
|
end
|
23
22
|
end
|
24
23
|
|
25
|
-
def
|
26
|
-
@
|
24
|
+
def model_pool
|
25
|
+
@model_pool ||= Bellbro::Settings.redis_pool[@default_db_name]
|
27
26
|
end
|
28
27
|
end
|
29
28
|
|
data/lib/bellbro/settings.rb
CHANGED
@@ -2,7 +2,7 @@ module Bellbro
|
|
2
2
|
module Settings
|
3
3
|
|
4
4
|
class SettingsData < Struct.new(
|
5
|
-
:logger, :env, :
|
5
|
+
:logger, :env, :redis_config, :redis_pool
|
6
6
|
)
|
7
7
|
end
|
8
8
|
|
@@ -26,26 +26,12 @@ module Bellbro
|
|
26
26
|
|
27
27
|
def self.redis_pool
|
28
28
|
return unless configured?
|
29
|
-
configuration.redis_pool
|
30
|
-
ConnectionPool.new(timeout: 5, size: redis_pool_size) do
|
31
|
-
Redis.new(url: redis_url, network_timeout: 5)
|
32
|
-
end
|
33
|
-
end
|
29
|
+
configuration.redis_pool
|
34
30
|
end
|
35
31
|
|
36
|
-
def self.
|
32
|
+
def self.redis_config
|
37
33
|
return unless configured?
|
38
|
-
configuration.
|
39
|
-
end
|
40
|
-
|
41
|
-
def self.redis_pool_size
|
42
|
-
return unless configured?
|
43
|
-
configuration.redis_pool_size
|
44
|
-
end
|
45
|
-
|
46
|
-
def self.redis_url
|
47
|
-
return unless configured?
|
48
|
-
configuration.redis_url
|
34
|
+
configuration.redis_config
|
49
35
|
end
|
50
36
|
|
51
37
|
def self.logger
|
data/lib/bellbro/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bellbro
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jon Stokes
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-02-
|
11
|
+
date: 2015-02-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|