msgr 0.2.1 → 0.3.0
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/CHANGELOG.md +13 -0
- data/README.md +14 -0
- data/lib/msgr/client.rb +15 -7
- data/lib/msgr/railtie.rb +1 -1
- data/lib/msgr/version.rb +2 -2
- data/spec/msgr/msgr/client_spec.rb +7 -6
- data/spec/msgr/msgr/connection_spec.rb +1 -40
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8948601f4dd6d56c3d502ec2c9898e7b0d6bd6d7
|
4
|
+
data.tar.gz: 4f4bf4567945427f5296f5d9e38f064ed54b8769
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 70a9b7e8ed8a3e94dbb6fde5401954661911450f8ffadf7a19135d682f6088d81565151b5fcfe933bbb7b08392f35126c53aab957a1019ec9535d227fdfa06c9
|
7
|
+
data.tar.gz: d8761f0ec024977fce524b91127f7728a302734ad88dfcaa6a40cd77df1aaf2168ea187007df33d9e9ac436c392a09add8bb709beac203dfe77c54064109c949
|
data/CHANGELOG.md
ADDED
data/README.md
CHANGED
@@ -84,6 +84,20 @@ class TestController < ApplicationController
|
|
84
84
|
end
|
85
85
|
```
|
86
86
|
|
87
|
+
## Msgr and fork web server like unicorn
|
88
|
+
|
89
|
+
Per default msgr opens the rabbitmq connect when rails is loaded. If you use a multi-process web server that preloads the application (like unicorn) will lead to unexpected behavior. In this case adjust `config/rabbitmq.yml` and adjust `autostart = false`:
|
90
|
+
|
91
|
+
|
92
|
+
```yaml
|
93
|
+
common: &common
|
94
|
+
uri: amqp://localhost/
|
95
|
+
autostart: false
|
96
|
+
```
|
97
|
+
|
98
|
+
And call inside each worker `Msgr.client.start` - e.g. in an after-fork block
|
99
|
+
|
100
|
+
|
87
101
|
## Contributing
|
88
102
|
|
89
103
|
1. Fork it
|
data/lib/msgr/client.rb
CHANGED
@@ -19,9 +19,7 @@ module Msgr
|
|
19
19
|
@uri.path = config[:vhost] ||= @uri.path.present? ? @uri.path : '/'
|
20
20
|
config.reject! { |_,v| v.nil? }
|
21
21
|
|
22
|
-
@config
|
23
|
-
@bunny = Bunny.new config
|
24
|
-
@pool = Pool.new Dispatcher, size: config[:size]
|
22
|
+
@config = config
|
25
23
|
end
|
26
24
|
|
27
25
|
def running?; @running end
|
@@ -51,10 +49,8 @@ module Msgr
|
|
51
49
|
def start
|
52
50
|
log(:info) { "Start client to #{uri}" }
|
53
51
|
|
54
|
-
|
55
|
-
|
56
|
-
@running = true
|
57
|
-
new_connection
|
52
|
+
init
|
53
|
+
launch
|
58
54
|
|
59
55
|
log(:info) { 'Client started.' }
|
60
56
|
end
|
@@ -109,5 +105,17 @@ module Msgr
|
|
109
105
|
rescue TimeoutError
|
110
106
|
log(:warn) { "Could not shutdown pool within #{timeout} seconds." }
|
111
107
|
end
|
108
|
+
|
109
|
+
def init
|
110
|
+
@bunny = Bunny.new @config
|
111
|
+
@pool = Pool.new Dispatcher, size: @config[:size]
|
112
|
+
end
|
113
|
+
|
114
|
+
def launch
|
115
|
+
@bunny.start
|
116
|
+
@pool.start
|
117
|
+
@running = true
|
118
|
+
new_connection
|
119
|
+
end
|
112
120
|
end
|
113
121
|
end
|
data/lib/msgr/railtie.rb
CHANGED
data/lib/msgr/version.rb
CHANGED
@@ -2,23 +2,24 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe Msgr::Client do
|
4
4
|
|
5
|
-
describe '#
|
5
|
+
describe '#start' do
|
6
6
|
let(:params) { [] }
|
7
7
|
let(:client) { Msgr::Client.new *params }
|
8
|
+
before { allow_any_instance_of(Msgr::Client).to receive(:launch) }
|
8
9
|
|
9
10
|
context 'with URI' do
|
10
11
|
it 'should pass URI options to bunny (I)' do
|
11
12
|
expect(Bunny).to receive(:new)
|
12
13
|
.with(pass: 'guest', user: 'guest', ssl: false, host: 'localhost', vhost: '/')
|
13
14
|
|
14
|
-
Msgr::Client.new
|
15
|
+
Msgr::Client.new(uri: 'amqp://guest:guest@localhost/').start
|
15
16
|
end
|
16
17
|
|
17
18
|
it 'should pass URI options to bunny (II)' do
|
18
19
|
expect(Bunny).to receive(:new)
|
19
20
|
.with(pass: 'msgr', user: 'abc', ssl: true, host: 'bogus.example.org', vhost: '/rabbit')
|
20
21
|
|
21
|
-
Msgr::Client.new
|
22
|
+
Msgr::Client.new(uri: 'amqps://abc:msgr@bogus.example.org/rabbit').start
|
22
23
|
end
|
23
24
|
end
|
24
25
|
|
@@ -27,7 +28,7 @@ describe Msgr::Client do
|
|
27
28
|
expect(Bunny).to receive(:new)
|
28
29
|
.with(pass: 'guest', user: 'guest', ssl: false, host: 'localhost', vhost: '/')
|
29
30
|
|
30
|
-
Msgr::Client.new
|
31
|
+
Msgr::Client.new(pass: 'guest', user: 'guest', ssl: false, host: 'localhost', vhost: '/').start
|
31
32
|
end
|
32
33
|
end
|
33
34
|
|
@@ -36,14 +37,14 @@ describe Msgr::Client do
|
|
36
37
|
expect(Bunny).to receive(:new)
|
37
38
|
.with(pass: 'msgr', user: 'abc', ssl: false, host: 'localhost', vhost: '/joghurt')
|
38
39
|
|
39
|
-
Msgr::Client.new
|
40
|
+
Msgr::Client.new(uri: 'ampq://abc@localhost', pass: 'msgr', vhost: '/joghurt').start
|
40
41
|
end
|
41
42
|
|
42
43
|
it 'should pass prefer hash option' do
|
43
44
|
expect(Bunny).to receive(:new)
|
44
45
|
.with(ssl: true, host: 'a.example.org', vhost: '/', user: 'guest')
|
45
46
|
|
46
|
-
Msgr::Client.new
|
47
|
+
Msgr::Client.new(uri: 'ampq://localhost', ssl: true, host: 'a.example.org').start
|
47
48
|
end
|
48
49
|
end
|
49
50
|
end
|
@@ -7,45 +7,6 @@ describe Msgr::Connection do
|
|
7
7
|
let(:routes) { Msgr::Routes.new }
|
8
8
|
let(:connection) { Msgr::Connection.new conn, routes, dispatcher }
|
9
9
|
|
10
|
-
|
11
|
-
it 'should pass URI options to bunny (I)' do
|
12
|
-
expect(Bunny).to receive(:new)
|
13
|
-
.with(pass: 'guest', user: 'guest', ssl: false, host: 'localhost', vhost: '/')
|
14
|
-
|
15
|
-
Msgr::Client.new uri: 'amqp://guest:guest@localhost/'
|
16
|
-
end
|
17
|
-
|
18
|
-
it 'should pass URI options to bunny (II)' do
|
19
|
-
expect(Bunny).to receive(:new)
|
20
|
-
.with(pass: 'msgr', user: 'abc', ssl: true, host: 'bogus.example.org', vhost: '/rabbit')
|
21
|
-
|
22
|
-
Msgr::Client.new uri: 'amqps://abc:msgr@bogus.example.org/rabbit'
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
context 'with options' do
|
27
|
-
it 'should pass options to bunny' do
|
28
|
-
expect(Bunny).to receive(:new)
|
29
|
-
.with(pass: 'guest', user: 'guest', ssl: false, host: 'localhost', vhost: '/')
|
30
|
-
|
31
|
-
Msgr::Client.new pass: 'guest', user: 'guest', ssl: false, host: 'localhost', vhost: '/'
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
context 'with URI and options' do
|
36
|
-
it 'should pass merged options to bunny' do
|
37
|
-
expect(Bunny).to receive(:new)
|
38
|
-
.with(pass: 'msgr', user: 'abc', ssl: false, host: 'localhost', vhost: '/joghurt')
|
39
|
-
|
40
|
-
Msgr::Client.new uri: 'ampq://abc@localhost', pass: 'msgr', vhost: '/joghurt'
|
41
|
-
end
|
42
|
-
|
43
|
-
it 'should pass prefer hash option' do
|
44
|
-
expect(Bunny).to receive(:new)
|
45
|
-
.with(ssl: true, host: 'a.example.org', vhost: '/', user: 'guest')
|
46
|
-
|
47
|
-
Msgr::Client.new uri: 'ampq://localhost', ssl: true, host: 'a.example.org'
|
48
|
-
end
|
49
|
-
end
|
10
|
+
pending 'some tests missing -> only lets written'
|
50
11
|
end
|
51
12
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: msgr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jan Graichen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-03-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -75,6 +75,7 @@ extra_rdoc_files: []
|
|
75
75
|
files:
|
76
76
|
- ".gitignore"
|
77
77
|
- ".travis.yml"
|
78
|
+
- CHANGELOG.md
|
78
79
|
- Gemfile
|
79
80
|
- Guardfile
|
80
81
|
- LICENSE.txt
|