eventq_aws 1.4.2 → 1.5.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: 8180b5daeaa453643f791f1fdc9879b028663b50
4
- data.tar.gz: 4b2938a7acca4df7f0bc73f406576ef6c7aff682
3
+ metadata.gz: 3ccab4c39061946a12cdb2c529daf069aeef62ea
4
+ data.tar.gz: f4f3d6de57d1eb9dd72993da96f4d35e4a095940
5
5
  SHA512:
6
- metadata.gz: 6ca19537321f821bec1a41a018ee1ed3094736452892bf897b3e5174cea3323bc0c6b5792cf5407ff64a3366039a07adeaaf73bacdacef89afcc5c31823bb1d8
7
- data.tar.gz: 5cd4d9ce3746bbb04b9ed95e51b79227f9e24295fba198a50e5ce3e59e25a85b1c10dccfd60ab8f22d350831865276a0003519c1c930ec968a6dae61618dc588
6
+ metadata.gz: 44ab5a51438ceb8882d4692f8415dcb9a916abcd4adbecbe544a3cce41dfebf6d5e0d9305e7b480baa89ad90cfc2a44609875fdf3da9e6fa4b16951971771aac
7
+ data.tar.gz: 2e50e09979808dc959edb0f693adecdb78d387ad427e12a63c3aa16871bfd241c56fee3c2ffd8f1f1a6305e1e0e3cd12bcfb861d02ec4a60c7bd4197ea09b381
@@ -18,7 +18,7 @@ module EventQ
18
18
 
19
19
  topic_arn = @client.get_topic_arn(event_type)
20
20
 
21
- qm = EventQ::QueueMessage.new
21
+ qm = new_message
22
22
  qm.content = event
23
23
  qm.type = event_type
24
24
 
@@ -38,6 +38,10 @@ module EventQ
38
38
 
39
39
  end
40
40
 
41
+ def new_message
42
+ EventQ::QueueMessage.new
43
+ end
44
+
41
45
  end
42
46
  end
43
47
  end
@@ -17,6 +17,11 @@ module EventQ
17
17
 
18
18
  @hash_helper = HashKit::Helper.new
19
19
  @serialization_provider_manager = EventQ::SerializationProviders::Manager.new
20
+
21
+ @last_gc_flush = Time.now
22
+ @gc_flush_interval = 10
23
+
24
+ @queue_poll_wait = 10
20
25
  end
21
26
 
22
27
  def start(queue, options = {}, &block)
@@ -83,9 +88,9 @@ module EventQ
83
88
 
84
89
  has_processed = thread_process_iteration(client, manager, queue, block)
85
90
 
86
- GC.start
91
+ gc_flush
87
92
 
88
- if !has_processed
93
+ if !has_processed && @sleep > 0
89
94
  EventQ.log(:debug, "[#{self.class}] - Sleeping for #{@sleep} seconds")
90
95
  sleep(@sleep)
91
96
  end
@@ -103,6 +108,17 @@ module EventQ
103
108
 
104
109
  end
105
110
 
111
+ def gc_flush
112
+ if Time.now - last_gc_flush > @gc_flush_interval
113
+ GC.start
114
+ @last_gc_flush = Time.now
115
+ end
116
+ end
117
+
118
+ def last_gc_flush
119
+ @last_gc_flush
120
+ end
121
+
106
122
  def thread_process_iteration(client, manager, queue, block)
107
123
  #get the queue
108
124
  q = manager.get_queue(queue)
@@ -116,7 +132,7 @@ module EventQ
116
132
  response = client.sqs.receive_message({
117
133
  queue_url: q,
118
134
  max_number_of_messages: 1,
119
- wait_time_seconds: 10,
135
+ wait_time_seconds: @queue_poll_wait,
120
136
  attribute_names: [APPROXIMATE_RECEIVE_COUNT]
121
137
  })
122
138
 
@@ -182,6 +198,10 @@ module EventQ
182
198
 
183
199
  EventQ.log(:debug, "[#{self.class}] - Message received. Retry Attempts: #{retry_attempts}")
184
200
 
201
+ if(!EventQ::NonceManager.is_allowed?(message.id))
202
+ return false
203
+ end
204
+
185
205
  #begin worker block for queue message
186
206
  begin
187
207
 
@@ -205,8 +225,11 @@ module EventQ
205
225
  end
206
226
 
207
227
  if abort || error
228
+ EventQ::NonceManager.failed(message.id)
208
229
  EventQ.log(:info, "[#{self.class}] - Message rejected.")
209
230
  reject_message(queue, client, msg, q, retry_attempts)
231
+ else
232
+ EventQ::NonceManager.complete(message.id)
210
233
  end
211
234
 
212
235
  yield [received, error]
@@ -282,7 +305,15 @@ module EventQ
282
305
  @fork_count = options[:fork_count]
283
306
  end
284
307
 
285
- EventQ.log(:info, "[#{self.class}] - Configuring. Process Count: #{@fork_count} | Thread Count: #{@thread_count} | Interval Sleep: #{@sleep}.")
308
+ if options.key?(:gc_flush_interval)
309
+ @gc_flush_interval = options[:gc_flush_interval]
310
+ end
311
+
312
+ if options.key?(:queue_poll_wait)
313
+ @queue_poll_wait = options[:queue_poll_wait]
314
+ end
315
+
316
+ EventQ.log(:info, "[#{self.class}] - Configuring. Process Count: #{@fork_count} | Thread Count: #{@thread_count} | Interval Sleep: #{@sleep} | GC Flush Interval: #{@gc_flush_interval} | Queue Poll Wait: #{@queue_poll_wait}.")
286
317
 
287
318
  return true
288
319
 
@@ -1,5 +1,5 @@
1
1
  module EventQ
2
2
  module Amazon
3
- VERSION = "1.4.2"
3
+ VERSION = "1.5.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eventq_aws
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.2
4
+ version: 1.5.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