eventhub-processor 0.1.4 → 0.2.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/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
|