eventq_rabbitmq 1.8.2 → 1.9.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: 100a393f027ee4371566dd32c1b6eacad4148885
4
- data.tar.gz: 8d317afacfcc0c04423c6be46df18beb2bca6444
3
+ metadata.gz: 6a05e68dadc2902ff186c61338c4b846d8f99e1e
4
+ data.tar.gz: 5d194cdf46a0b36473bbb737a35e672a73122303
5
5
  SHA512:
6
- metadata.gz: d6b4ee8815efdaae81af0f7dbf414c3bc6462d600aa85cae536ff73cf5005de2fc60b5778dd5ddc64a531718a7a435e098b326e9c2928032defe27124b844be2
7
- data.tar.gz: c3599f05b8e7d6663ba8eaa6acfd83d2aa3c8e8a8b95416349118461498573eebc2d5bb9f101fbbfe3a6490241ee2a99c3872c8ccf5abe214a64779dbbbe4fbc
6
+ metadata.gz: c6df02b234f53398873ec480dc3f23205a02e9d23ebd99feb88f2928e942c90c29cc6cf26a11b807a1ad52f20abffa31a3bfa5773f93ae69217de0d5fc5e9ef1
7
+ data.tar.gz: be6b820e3add9890fd38f899aa7b86ef001ca8fafd5495038738479da2852f1f7e7747d8c9bb2a605a4ff1292e49c88913fbb31950fa5e96b74d3ceced761651
@@ -23,7 +23,7 @@ module EventQ
23
23
 
24
24
  ex = @queue_manager.get_exchange(channel, @event_raised_exchange)
25
25
 
26
- qm = EventQ::QueueMessage.new
26
+ qm = new_message
27
27
  qm.content = event
28
28
  qm.type = event_type
29
29
 
@@ -47,6 +47,10 @@ module EventQ
47
47
  return true
48
48
  end
49
49
 
50
+ def new_message
51
+ EventQ::QueueMessage.new
52
+ end
53
+
50
54
  end
51
55
  end
52
56
  end
@@ -13,6 +13,8 @@ module EventQ
13
13
  @retry_exceeded_block = nil
14
14
  @hash_helper = HashKit::Helper.new
15
15
  @serialization_provider_manager = EventQ::SerializationProviders::Manager.new
16
+ @last_gc_flush = Time.now
17
+ @gc_flush_interval = 10
16
18
  end
17
19
 
18
20
  def start(queue, options = {}, &block)
@@ -99,7 +101,7 @@ module EventQ
99
101
  channel.close
100
102
  end
101
103
 
102
- GC.start
104
+ gc_flush
103
105
 
104
106
  if !has_processed
105
107
  EventQ.log(:debug, "[#{self.class}] - Sleeping for #{@sleep} seconds")
@@ -122,6 +124,17 @@ module EventQ
122
124
 
123
125
  end
124
126
 
127
+ def gc_flush
128
+ if Time.now - last_gc_flush > @gc_flush_interval
129
+ GC.start
130
+ @last_gc_flush = Time.now
131
+ end
132
+ end
133
+
134
+ def last_gc_flush
135
+ @last_gc_flush
136
+ end
137
+
125
138
  def thread_process_iteration(channel, manager, queue, block)
126
139
 
127
140
  #get the queue
@@ -256,6 +269,11 @@ module EventQ
256
269
  @fork_count = options[:fork_count]
257
270
  end
258
271
 
272
+ @gc_flush_interval = 10
273
+ if options.key?(:gc_flush_interval)
274
+ @gc_flush_interval = options[:gc_flush_interval]
275
+ end
276
+
259
277
  EventQ.log(:info, "[#{self.class}] - Configuring. Process Count: #{@fork_count} | Thread Count: #{@thread_count} | Interval Sleep: #{@sleep}.")
260
278
 
261
279
  return true
@@ -266,12 +284,18 @@ module EventQ
266
284
 
267
285
  def process_message(payload, queue, channel, retry_exchange, delivery_info, block)
268
286
  abort = false
287
+ error = false
288
+ received = false
269
289
  message = deserialize_message(payload)
270
290
 
271
291
  EventQ.log(:debug, "[#{self.class}] - Message received. Retry Attempts: #{message.retry_attempts}")
272
292
 
273
293
  message_args = EventQ::MessageArgs.new(message.type, message.retry_attempts)
274
294
 
295
+ if(!EventQ::NonceManager.is_allowed?(message.id))
296
+ return false
297
+ end
298
+
275
299
  #begin worker block for queue message
276
300
  begin
277
301
  block.call(message.content, message_args)
@@ -292,7 +316,10 @@ module EventQ
292
316
  end
293
317
 
294
318
  if error || abort
319
+ EventQ::NonceManager.failed(message.id)
295
320
  reject_message(channel, message, delivery_info, retry_exchange, queue)
321
+ else
322
+ EventQ::NonceManager.complete(message.id)
296
323
  end
297
324
 
298
325
  yield [received, error]
@@ -1,3 +1,3 @@
1
1
  module EventqRabbitmq
2
- VERSION = "1.8.2"
2
+ VERSION = "1.9.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eventq_rabbitmq
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.2
4
+ version: 1.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - vaughanbrittonsage
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-09-16 00:00:00.000000000 Z
11
+ date: 2016-10-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -84,16 +84,16 @@ dependencies:
84
84
  name: eventq_base
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - "~>"
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: 1.7.0
89
+ version: '0'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - "~>"
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
- version: 1.7.0
96
+ version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: hash_kit
99
99
  requirement: !ruby/object:Gem::Requirement