bbk-amqp 1.0.0.105683 → 1.0.0.105722

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.
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