eventhub-processor 0.1.4 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/eventhub/constant.rb +11 -6
- data/lib/eventhub/message.rb +2 -2
- data/lib/eventhub/processor.rb +20 -7
- data/lib/eventhub/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7f30f60657aa0add2c650f979379a322e12e03a0
|
4
|
+
data.tar.gz: a1a3c18323cb8c279efcf8d75458d9c0f3e2e9ce
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 724596f917212aa8de6ae04c22ddec1801074c43a209a784f7c0417529b17ab14611ea8a6fdabc8047cab6b28b0a57af269e5fc6bd16c8ce3e69442dd95aeca7
|
7
|
+
data.tar.gz: 41e41e635ce559e6279db9ab34d2059b3060402caeb39f7bc31dec2438f84762fdf5476eac543e771696e162a15157e2a5d11bde2eb512bd69aa476894bfa128
|
data/lib/eventhub/constant.rb
CHANGED
@@ -2,10 +2,15 @@ module EventHub
|
|
2
2
|
|
3
3
|
EH_X_INBOUND = 'event_hub.inbound'
|
4
4
|
|
5
|
-
STATUS_INITIAL = 0 #
|
6
|
-
STATUS_SUCCESS = 200 #
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
5
|
+
STATUS_INITIAL = 0 # To be set when dispatcher needs to dispatch to first process step.
|
6
|
+
STATUS_SUCCESS = 200 # To be set to indicate successful processed message. Dispatcher will routes message to the next step.
|
7
|
+
STATUS_RETRY = 300 # To be set to trigger retry cycle controlled by the dispatcher
|
8
|
+
STATUS_RETRY_PENDING = 301 # Set and used by the dispatcher only.
|
9
|
+
# Set before putting the message into a retry queue.
|
10
|
+
# Once message has been retried it will sent do the same step with status.code = STATUS_SUCCESS
|
11
|
+
STATUS_INVALID = 400 # To be set to indicate invalid message (not json, invalid Event Hub Message).
|
12
|
+
# Dispatcher will publish message to the invalid queue.
|
13
|
+
STATUS_DEADLETTER = 500 # To be set by dispatcher, processor or channel adapters to indicate
|
14
|
+
# that message needs to be dead-lettered. Rejected messages could miss the
|
15
|
+
# status.code = STATUS_DEADLETTER due to the RabbitMQ deadletter exchange mechanism.
|
11
16
|
end
|
data/lib/eventhub/message.rb
CHANGED
data/lib/eventhub/processor.rb
CHANGED
@@ -13,11 +13,13 @@ module EventHub
|
|
13
13
|
@name = name || class_to_array(self.class)[1..-1].join(".")
|
14
14
|
@folder = Dir.pwd
|
15
15
|
|
16
|
+
# Variables used for heartbeat statistics
|
16
17
|
@started = Time.now
|
17
|
-
|
18
|
-
@
|
19
|
-
@
|
20
|
-
|
18
|
+
@messages_successful = 0
|
19
|
+
@messages_unsuccessful = 0
|
20
|
+
@messages_average_size = 0
|
21
|
+
@messages_average_process_time = 0
|
22
|
+
@first_message = true
|
21
23
|
|
22
24
|
@channel_receiver = nil
|
23
25
|
@channel_sender = nil
|
@@ -94,9 +96,8 @@ module EventHub
|
|
94
96
|
|
95
97
|
# subscribe to queue
|
96
98
|
@queue.subscribe(:ack => true) do |metadata, payload|
|
97
|
-
|
98
|
-
|
99
99
|
begin
|
100
|
+
start_stamp = Time.now
|
100
101
|
messages_to_send = []
|
101
102
|
|
102
103
|
# try to convert to Evenhub message
|
@@ -116,7 +117,17 @@ module EventHub
|
|
116
117
|
send_message(message)
|
117
118
|
end
|
118
119
|
@channel_receiver.acknowledge(metadata.delivery_tag)
|
120
|
+
|
121
|
+
# collect statistics for the heartbeat
|
119
122
|
@messages_successful += 1
|
123
|
+
if @first_message
|
124
|
+
@messages_average_process_time = Time.now - start_stamp
|
125
|
+
@messages_average_size = payload.size
|
126
|
+
@first_message = false
|
127
|
+
else
|
128
|
+
@messages_average_process_time = (@messages_average_process_time + (Time.now - start_stamp))/2.0
|
129
|
+
@messages_average_size = (@messages_average_size + payload.size) / 2.0
|
130
|
+
end
|
120
131
|
|
121
132
|
rescue => e
|
122
133
|
@channel_receiver.reject(metadata.delivery_tag,false)
|
@@ -215,7 +226,9 @@ module EventHub
|
|
215
226
|
messages: {
|
216
227
|
total: @messages_successful+@messages_unsuccessful,
|
217
228
|
successful: @messages_successful,
|
218
|
-
unsuccessful: @messages_unsuccessful
|
229
|
+
unsuccessful: @messages_unsuccessful,
|
230
|
+
average_size: @messages_average_size,
|
231
|
+
average_process_time: @messages_average_process_time
|
219
232
|
}
|
220
233
|
}
|
221
234
|
}
|
data/lib/eventhub/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eventhub-processor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thomas Steiner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-05-
|
11
|
+
date: 2014-05-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|