messaging-adapter 1.0.6 → 1.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/messaging_adapter.rb +4 -4
- data/lib/messaging_adapter/adapters/kafka.rb +4 -2
- data/lib/messaging_adapter/adapters/rabbitmq.rb +15 -11
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1921ca8d41d072562f3ab6e308d47b2c977bbd40
|
4
|
+
data.tar.gz: 8bc7c59595789439cff189d73b443f7967cceda8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bb4e8a5f861fa7c2af4934ee2fc816d6bca3c695036cca5a08c56b05d05643df78ee6523ed52ad625fa01020b03ccb00cb8e421542f8754db64f9523c02628d8
|
7
|
+
data.tar.gz: f8d7f58f064b379d6caa60f890c98479a8b08e7cfcfa421bbeff5ed70b74409bc73dc63e9638372f8360f3769c9d63b8b8804100ddf8725b30ba60a0187caed5
|
data/lib/messaging_adapter.rb
CHANGED
@@ -12,12 +12,12 @@ module MessagingAdapter
|
|
12
12
|
@adapter = MessageBrokerAdapter.const_get(adapter.to_s)
|
13
13
|
end
|
14
14
|
|
15
|
-
def publish(topic, payload)
|
16
|
-
@adapter.publish(topic, payload)
|
15
|
+
def publish(topic, payload, options = {})
|
16
|
+
@adapter.publish(topic, payload, options)
|
17
17
|
end
|
18
18
|
|
19
|
-
def subscribe(topic)
|
20
|
-
@adapter.subscribe(topic) { |payload| yield(payload) }
|
19
|
+
def subscribe(topic, options = {})
|
20
|
+
@adapter.subscribe(topic, options) { |payload| yield(payload) }
|
21
21
|
end
|
22
22
|
|
23
23
|
def self.available_adapters
|
@@ -3,12 +3,14 @@
|
|
3
3
|
module MessageBrokerAdapter
|
4
4
|
# Adapter implements Apache Kafka
|
5
5
|
class Kafka
|
6
|
-
def self.publish(topic, payload)
|
6
|
+
def self.publish(topic, payload, options = {})
|
7
7
|
puts "Not implemented yet!! publish{#{topic} [#{payload}]}"
|
8
|
+
puts options
|
8
9
|
end
|
9
10
|
|
10
|
-
def self.subscribe(topic)
|
11
|
+
def self.subscribe(topic, options = {})
|
11
12
|
puts "Not implemented yet!! subscribe{#{topic}}"
|
13
|
+
puts options
|
12
14
|
end
|
13
15
|
end
|
14
16
|
end
|
@@ -20,17 +20,24 @@ module MessageBrokerAdapter
|
|
20
20
|
attr_reader :sub_channel_locker
|
21
21
|
end
|
22
22
|
|
23
|
-
def self.publish(topic, payload)
|
24
|
-
|
25
|
-
|
23
|
+
def self.publish(topic, payload, options = {})
|
24
|
+
if options[:direct_to_q] == true
|
25
|
+
q = publisher_channel.queue(topic, passive: true)
|
26
|
+
q.publish(payload.to_json)
|
27
|
+
else
|
28
|
+
exchange = publisher_channel.fanout(topic, passive: true)
|
29
|
+
exchange.publish(payload.to_json)
|
30
|
+
end
|
26
31
|
|
27
32
|
puts '- RMQ: Message published successfully on topic ' \
|
28
33
|
"#{topic} [#{payload}]"
|
29
34
|
end
|
30
35
|
|
31
|
-
def self.subscribe(queue)
|
32
|
-
q = subscriber_channel.queue(queue,
|
33
|
-
|
36
|
+
def self.subscribe(queue, options = {})
|
37
|
+
q = subscriber_channel.queue(queue, passive: true)
|
38
|
+
options[:block] ||= options[:block].nil? ? true : options[:block]
|
39
|
+
puts options[:block]
|
40
|
+
q.subscribe(block: options[:block]) do |delivery_info, _properties, payload|
|
34
41
|
yield(payload)
|
35
42
|
end
|
36
43
|
|
@@ -42,14 +49,11 @@ module MessageBrokerAdapter
|
|
42
49
|
host: ENV['MessageBroker_Host'] || 'localhost',
|
43
50
|
port: ENV['MessageBroker_Port'] || '5672',
|
44
51
|
username: ENV['MessageBroker_User'] || 'guest',
|
45
|
-
password: ENV['MessageBroker_Pass'] || 'guest'
|
52
|
+
password: ENV['MessageBroker_Pass'] || 'guest',
|
53
|
+
vhost: ENV['MessageBroker_RabbitMQ_Vhost'] || '/'
|
46
54
|
}
|
47
55
|
end
|
48
56
|
|
49
|
-
def self.blocking_subscriber?
|
50
|
-
(ENV['MessageBroker_RabbitMQ_Block'] || 'true') == 'true'
|
51
|
-
end
|
52
|
-
|
53
57
|
def self.recover_connection(conn, locker)
|
54
58
|
locker.synchronize { conn.start } unless conn.open?
|
55
59
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: messaging-adapter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ayyoub Jadoo @ TAM
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '1.8'
|
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: '
|
40
|
+
version: '1.8'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bunny
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -58,14 +58,14 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '1.8'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '1.8'
|
69
69
|
description: Makes it easy to pub/sup with many message brokers.
|
70
70
|
email: ayyoubjadoo@gmail.com
|
71
71
|
executables: []
|