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