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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 12c253f5e74d502a2c2cb1614c43f06cefcc94ab
4
- data.tar.gz: 6f6f3cbd596fba45d5f8b6894f90666b3cb9a10f
3
+ metadata.gz: 7f30f60657aa0add2c650f979379a322e12e03a0
4
+ data.tar.gz: a1a3c18323cb8c279efcf8d75458d9c0f3e2e9ce
5
5
  SHA512:
6
- metadata.gz: 08cbfac351147006c6da25d2313166ce038bbefe8d995ff9315a201b3d856e26e78909ee81bcd5d9e05334a8e83a279962d7d0718dac4f8655ad3f01080b51fc
7
- data.tar.gz: d189a1178191abccfea76e9ce7cf55f305983286def5f54a16ea2465ea0c3743fd21c0f19e2ac3b862283f976f8689febd061140f21e68c5e2784f61fae97d5e
6
+ metadata.gz: 724596f917212aa8de6ae04c22ddec1801074c43a209a784f7c0417529b17ab14611ea8a6fdabc8047cab6b28b0a57af269e5fc6bd16c8ce3e69442dd95aeca7
7
+ data.tar.gz: 41e41e635ce559e6279db9ab34d2059b3060402caeb39f7bc31dec2438f84762fdf5476eac543e771696e162a15157e2a5d11bde2eb512bd69aa476894bfa128
@@ -2,10 +2,15 @@ module EventHub
2
2
 
3
3
  EH_X_INBOUND = 'event_hub.inbound'
4
4
 
5
- STATUS_INITIAL = 0 # initial status code
6
- STATUS_SUCCESS = 200 # compare with HTTP Status Code: Success
7
- STATUS_RETRIED = 300 # compare with HTTP Status Code: Multiple Choices
8
- STATUS_INVALID = 400 # compare with HTTP Status Code: Bad request
9
- STATUS_UNDELIVERABLE = 500 # comapre with HTTP Status Code: Server Error
10
- STATUS_ERROR = 600 # Business Process Error
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
@@ -86,8 +86,8 @@ module EventHub
86
86
  self.status_code == STATUS_INITIAL
87
87
  end
88
88
 
89
- def retried?
90
- self.status_code == STATUS_RETRIED
89
+ def retry_pending?
90
+ self.status_code == STATUS_RETRY_PENDING
91
91
  end
92
92
 
93
93
  def to_json
@@ -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
- @messages_successful = 0
19
- @messages_unsuccessful = 0
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
  }
@@ -1,3 +1,3 @@
1
1
  module EventHub
2
- VERSION = "0.1.4"
2
+ VERSION = "0.2.0"
3
3
  end
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.1.4
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-15 00:00:00.000000000 Z
11
+ date: 2014-05-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler