gorg_service 5.0.0 → 5.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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c1a373eae1c1f417da46ab05ed254a6282f8db2c
|
4
|
+
data.tar.gz: b67c38dcea30bac3b29d3857db22794f190f7b00
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ac47bf636d8e2cabf1d8dfcdff4344460df2f9e6b8f533dff63bd122b91ac4d87d822dbdcd8e74cb29889352703481fcc4a1f6e20602af3b7ef6563ef4128e17
|
7
|
+
data.tar.gz: 097c3a1bebe68f1ddf315e09b1461a8d2fa677e4b09936146a4413d25ae8e893ffa5a627ac2f84daef00d02c74fd1eef1efda48d35677116be392b3d333278f6
|
data/bin/worker
CHANGED
@@ -8,12 +8,15 @@ class GorgService
|
|
8
8
|
def initialize(message)
|
9
9
|
@message=message
|
10
10
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
11
|
+
GorgService::Consumer::MessageHandler::ExceptionManager.instance.with_exception_rescuing(self.message) do
|
12
|
+
begin
|
13
|
+
validate
|
14
|
+
rescue GorgService::Message::DataValidationError => e
|
15
|
+
raise_hardfail("DataValidationError",error: e.errors)
|
16
|
+
end
|
17
|
+
|
18
|
+
process
|
15
19
|
end
|
16
|
-
process
|
17
20
|
end
|
18
21
|
|
19
22
|
def validate
|
@@ -30,14 +33,25 @@ class GorgService
|
|
30
33
|
alias_method :msg, :message
|
31
34
|
|
32
35
|
def raise_hardfail(message, error: nil)
|
33
|
-
|
36
|
+
self.class.raise_hardfail(message, error: error)
|
34
37
|
end
|
35
38
|
|
36
39
|
def raise_softfail(message, error: nil)
|
37
|
-
|
40
|
+
self.class.raise_softfail(message, error: error)
|
38
41
|
end
|
39
42
|
|
40
43
|
class << self
|
44
|
+
def raise_hardfail(message, error: nil)
|
45
|
+
raise HardfailError.new(message, error)
|
46
|
+
end
|
47
|
+
|
48
|
+
def raise_softfail(message, error: nil)
|
49
|
+
raise SoftfailError.new(message, error)
|
50
|
+
end
|
51
|
+
|
52
|
+
def handle_error(*errorClasses,&block)
|
53
|
+
GorgService::Consumer::MessageHandler::ExceptionManager.instance.set_rescue_from(*errorClasses,&block)
|
54
|
+
end
|
41
55
|
|
42
56
|
def listen_to(routing_key)
|
43
57
|
MessageRouter.register_route(routing_key, self)
|
@@ -0,0 +1,51 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# encoding: utf-8
|
3
|
+
|
4
|
+
class GorgService
|
5
|
+
class Consumer
|
6
|
+
module MessageHandler
|
7
|
+
class ExceptionManager
|
8
|
+
|
9
|
+
def self.instance
|
10
|
+
@instance ||= self.new
|
11
|
+
end
|
12
|
+
|
13
|
+
def with_exception_rescuing(message=nil)
|
14
|
+
begin
|
15
|
+
begin
|
16
|
+
yield
|
17
|
+
rescue *rescuable_exceptions => e
|
18
|
+
get_rescue_block_for(e).call(e,message)
|
19
|
+
end
|
20
|
+
rescue GorgService::Consumer::FailError => e
|
21
|
+
raise e
|
22
|
+
# rescue StandardError => e
|
23
|
+
# GorgService.logger.error "Uncaught exception : #{e.inspect}"
|
24
|
+
# raise HardfailError.new("UncaughtException", e)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def set_rescue_from(*exception_classes,&block)
|
29
|
+
exception_classes.each do |e|
|
30
|
+
exceptions_hash[e]=block
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def rescuable_exceptions
|
35
|
+
exceptions_hash.keys
|
36
|
+
end
|
37
|
+
|
38
|
+
def get_rescue_block_for(exception)
|
39
|
+
exceptions_hash.find{|k,_v| exception.is_a?(k)}[1]
|
40
|
+
end
|
41
|
+
|
42
|
+
private
|
43
|
+
|
44
|
+
def exceptions_hash
|
45
|
+
@exceptions_hash ||= Hash.new
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -1,6 +1,8 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
# encoding: utf-8
|
3
3
|
|
4
|
+
require "gorg_service/consumer/message_handler/exception_manager"
|
5
|
+
|
4
6
|
class GorgService
|
5
7
|
class Consumer
|
6
8
|
module MessageHandler
|
@@ -12,4 +14,4 @@ end
|
|
12
14
|
require "gorg_service/consumer/message_handler/base"
|
13
15
|
require "gorg_service/consumer/message_handler/event_handler"
|
14
16
|
require "gorg_service/consumer/message_handler/request_handler"
|
15
|
-
require "gorg_service/consumer/message_handler/reply_handler"
|
17
|
+
require "gorg_service/consumer/message_handler/reply_handler"
|
data/lib/gorg_service/version.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: 5.
|
4
|
+
version: 5.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: 2017-02-
|
11
|
+
date: 2017-02-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bunny
|
@@ -169,6 +169,7 @@ files:
|
|
169
169
|
- lib/gorg_service/consumer/message_handler.rb
|
170
170
|
- lib/gorg_service/consumer/message_handler/base.rb
|
171
171
|
- lib/gorg_service/consumer/message_handler/event_handler.rb
|
172
|
+
- lib/gorg_service/consumer/message_handler/exception_manager.rb
|
172
173
|
- lib/gorg_service/consumer/message_handler/reply_handler.rb
|
173
174
|
- lib/gorg_service/consumer/message_handler/request_handler.rb
|
174
175
|
- lib/gorg_service/consumer/message_router.rb
|