gorg_service 2.0.1 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|