gorg_service 2.0.1 → 2.1.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/.gitignore +3 -1
- data/gorg_service.gemspec +1 -0
- data/lib/gorg_service/configuration.rb +4 -1
- data/lib/gorg_service/listener.rb +7 -7
- data/lib/gorg_service/message_handler.rb +1 -1
- data/lib/gorg_service/version.rb +1 -1
- data/lib/gorg_service.rb +4 -0
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: be78538824550903ad83a2890b9fe7c6ed28669c
|
4
|
+
data.tar.gz: b20a4be6c1e7d9f4e68ac62cf1da413e566be9be
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f7eb97a8e237e3bc904691b4af7f82fcee13cfb47701a03c4d58b57516416d4278013f090060930e0489f8e6eb5239eb6b12ef98adf51cbe9c9889526b37c654
|
7
|
+
data.tar.gz: b34cc4e94e22a72a1a08468ffe39592a8f43119c298b26ea71134c012f967ea00615fb9fc3994c05fc9a24f0624d5fb6c136bae36744a3f04864915d53ff7233
|
data/.gitignore
CHANGED
data/gorg_service.gemspec
CHANGED
@@ -35,4 +35,5 @@ Gem::Specification.new do |spec|
|
|
35
35
|
spec.add_development_dependency "rspec", "~> 3.0"
|
36
36
|
spec.add_development_dependency "codeclimate-test-reporter", "~> 0.5.0"
|
37
37
|
spec.add_development_dependency 'bogus', '~> 0.1.6'
|
38
|
+
spec.add_development_dependency 'byebug', '~> 9.0'
|
38
39
|
end
|
@@ -16,6 +16,7 @@ class GorgService
|
|
16
16
|
|
17
17
|
# Hold configuration of GorgService in instance variables
|
18
18
|
class Configuration
|
19
|
+
|
19
20
|
attr_accessor :application_name,
|
20
21
|
:application_id,
|
21
22
|
:rabbitmq_host,
|
@@ -28,10 +29,12 @@ class GorgService
|
|
28
29
|
:rabbitmq_password,
|
29
30
|
:rabbitmq_vhost,
|
30
31
|
:message_handler_map,
|
31
|
-
:log_routing_key
|
32
|
+
:log_routing_key,
|
33
|
+
:logger
|
32
34
|
|
33
35
|
|
34
36
|
def initialize
|
37
|
+
@logger = Logger.new(STDOUT)
|
35
38
|
@application_name = "GorgService"
|
36
39
|
@application_id = "gs"
|
37
40
|
@message_handler_map = {}
|
@@ -6,7 +6,7 @@ require "bunny"
|
|
6
6
|
class GorgService
|
7
7
|
class Listener
|
8
8
|
|
9
|
-
def initialize(bunny_session: nil,queue_name: "
|
9
|
+
def initialize(bunny_session: nil,queue_name: "gorg_service", exchange_name: nil, message_handler_map: {default: DefaultMessageHandler}, deferred_time: 1800000, max_attempts: 48,log_routing_key:nil)
|
10
10
|
@queue_name=queue_name
|
11
11
|
@exchange_name=exchange_name
|
12
12
|
@message_handler_map=message_handler_map
|
@@ -22,7 +22,7 @@ class GorgService
|
|
22
22
|
|
23
23
|
@q.subscribe(:manual_ack => true) do |delivery_info, _properties, body|
|
24
24
|
routing_key=delivery_info[:routing_key]
|
25
|
-
|
25
|
+
GorgService.logger.info "Received message with routing key #{routing_key} containing : #{body}"
|
26
26
|
process_message(body,routing_key)
|
27
27
|
@ch.ack(delivery_info.delivery_tag)
|
28
28
|
end
|
@@ -73,9 +73,9 @@ class GorgService
|
|
73
73
|
|
74
74
|
def process_softfail(e,message)
|
75
75
|
message.log_error(e)
|
76
|
-
|
76
|
+
GorgService.logger.error "SOFTFAIL ERROR : #{e.message}"
|
77
77
|
if message.errors.count >= @max_attempts
|
78
|
-
|
78
|
+
GorgService.logger.info " DISCARD MESSAGE : #{message.errors.count} errors in message log"
|
79
79
|
process_hardfail(HardfailError.new("Too Much SoftError : This message reached the limit of softerror (max: #{@max_attempts})"),message)
|
80
80
|
else
|
81
81
|
send_to_deferred_queue(message)
|
@@ -83,8 +83,8 @@ class GorgService
|
|
83
83
|
end
|
84
84
|
|
85
85
|
def process_hardfail(e,message)
|
86
|
-
|
87
|
-
|
86
|
+
GorgService.logger.error "HARDFAIL ERROR : #{e.message}"
|
87
|
+
GorgService.logger.info " DISCARD MESSAGE"
|
88
88
|
if message
|
89
89
|
message.log_error(e)
|
90
90
|
process_logging(message)
|
@@ -106,7 +106,7 @@ class GorgService
|
|
106
106
|
'x-dead-letter-routing-key' => msg.event,
|
107
107
|
}
|
108
108
|
)
|
109
|
-
|
109
|
+
GorgService.logger.info "DEFER MESSAGE : message sent to #{@queue_name}_deferred with routing key #{msg.event}"
|
110
110
|
q.publish(msg.to_json, :routing_key => msg.event)
|
111
111
|
end
|
112
112
|
|
@@ -5,7 +5,7 @@ class GorgService
|
|
5
5
|
class MessageHandler
|
6
6
|
|
7
7
|
def initialize(message)
|
8
|
-
|
8
|
+
GorgService.logger.warning "WARNING : Defined your MessageHandler behavior in its 'initialize' method"
|
9
9
|
end
|
10
10
|
|
11
11
|
def raise_hardfail(message, error:nil)
|
data/lib/gorg_service/version.rb
CHANGED
data/lib/gorg_service.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gorg_service
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexandre Narbonne
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-07-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bunny
|
@@ -128,6 +128,20 @@ dependencies:
|
|
128
128
|
- - "~>"
|
129
129
|
- !ruby/object:Gem::Version
|
130
130
|
version: 0.1.6
|
131
|
+
- !ruby/object:Gem::Dependency
|
132
|
+
name: byebug
|
133
|
+
requirement: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - "~>"
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: '9.0'
|
138
|
+
type: :development
|
139
|
+
prerelease: false
|
140
|
+
version_requirements: !ruby/object:Gem::Requirement
|
141
|
+
requirements:
|
142
|
+
- - "~>"
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: '9.0'
|
131
145
|
description:
|
132
146
|
email:
|
133
147
|
- alexandre.narbonne@gadz.org
|