bbk-amqp 1.0.0.105683 → 1.0.0.105722

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/lib/bbk/amqp/utils.rb +18 -9
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8b0cf40f223ad98321c2585561830b848c5f5f910c3735e58f25e89c10c27495
4
- data.tar.gz: f5557d4fcdc315583d2d3dece0162e1a5316a149b901cf9a6da7b23caa51a22d
3
+ metadata.gz: c548372181f2dd8188ed0aee86a514a0cf9d2d533d534211cd00d3e2137f1945
4
+ data.tar.gz: 2afa60b894ff011b639ea8f1a9de931570feb4bbe2ddd6c2061474ac3d01f0a9
5
5
  SHA512:
6
- metadata.gz: 85a5f458d11e8b29765478aa79ff70f9b6b5d1cf35905172ca7801fe8f697cc07ea1009131f369c16cb99e5a243ddf7c2ef4c48fe16ae9ce62912b5ee1a4c21a
7
- data.tar.gz: 3e576a2335e29c111fcfba695b9ff4866f588f623117f010b7b5cc87c8974e27e7917966ddb9eda6e87eaadeb2c1b265dfaf3cd5ae58c92a2ea90fc9ae3ee17e
6
+ metadata.gz: 06be7f99a98d9a80a0414c2bc96ec4990fd6c50177ff89c8e8462b20a00e445449532008c70873e23f9b26102655858d0f35b80c1e9fbb89c4729ab1281cda56
7
+ data.tar.gz: 1a9d618b0561e1fba5da9d23ad5c5000b2e66ef4e8a23657447968f74762539f249b98aecd307fd53fb2491d8adbeb1a10fdce2fca2d752ffe312cc76c7d1db0
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- bbk-amqp (1.0.0.105683)
4
+ bbk-amqp (1.0.0.105722)
5
5
  activesupport (>= 6.0)
6
6
  bbk-utils (> 1.0.1)
7
7
  bunny (>= 2.19.0)
@@ -14,17 +14,26 @@ module BBK
14
14
  # @return [Array] array with delivery_info, metadata and payload
15
15
  def self.pop(queue, timeout = 10)
16
16
  unblocker = Queue.new
17
+ consumed = false
18
+ mx = Mutex.new
17
19
  consumer = queue.subscribe(block: false, manual_ack: true) do |delivery_info, metadata, payload|
18
- message = [
19
- delivery_info,
20
- metadata.to_hash.with_indifferent_access,
21
- begin
22
- Oj.load(payload).with_indifferent_access
23
- rescue StandardError
24
- payload
20
+ mx.synchronize do
21
+ if consumed
22
+ queue.channel.nack(delivery_info.delivery_tag, false, true)
23
+ break
25
24
  end
26
- ]
27
- unblocker << message
25
+ consumed = true
26
+ message = [
27
+ delivery_info,
28
+ metadata.to_hash.with_indifferent_access,
29
+ begin
30
+ Oj.load(payload).with_indifferent_access
31
+ rescue StandardError
32
+ payload
33
+ end
34
+ ]
35
+ unblocker << message
36
+ end
28
37
  end
29
38
  Thread.new do
30
39
  sleep timeout
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bbk-amqp
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.105683
4
+ version: 1.0.0.105722
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samoylenko Yuri